Using Java for Parallel Computing: JCSP versus CTJ

Welch, Peter H. and Hilderink, Gerald H. and Schaller, Nan C. (2000) Using Java for Parallel Computing: JCSP versus CTJ. In: Communicating Process Architectures 2000. (Full text available)

Download (238kB) Preview


Java provides support for concurrent and parallel programming through threads, monitors and its socket and Remote Method Invocation (RMI) classes. However, there have been many concerns expressed about the way in which this support is provided, e.g., [1][2], citing problems such as improper implementation of monitors and difficulty of programming with threads. Hoare’s Communicating Sequential Processes (CSP) [3][4][5] model fully specifies thread synchronization and is based on processes, compositions, and channel communication. It provides a mathematical notation for describing patterns of communication using algebraic expressions and contains formal proofs for analyzing, verifying and eliminating undesirable conditions, such as race hazards, deadlocks, livelock, and starvation. Two independent research efforts provide a CSP based process-oriented design pattern for concurrency implemented in Java: Communicating Sequential Processes for Java (JCSP) [6] and Communication Threads in Java (CTJ) [7]. In this paper, we compare these two packages, looking at the philosophy behind their development, their similarities, their differences, their performance, and their use.

Item Type: Conference or workshop item (Paper)
Uncontrolled keywords: Concurrency, CSP, processes, channels, non-determinism, Java
Subjects: Q Science > QA Mathematics (inc Computing science) > QA 76 Software, computer programming,
Divisions: Faculties > Sciences > School of Computing
Depositing User: Mark Wheadon
Date Deposited: 12 Sep 2009 19:09 UTC
Last Modified: 11 Jun 2014 08:15 UTC
Resource URI: (The current URI for this page, for reference purposes)
  • Depositors only (login required):


Downloads per month over past year