Welch, P.H. and Hilderink, G.H. and Schaller, N.C.
(2000)
Using Java for Parallel Computing: JCSP versus CTJ.
In: Communicating Process Architectures 2000.
Abstract
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.
- Depositors only (login required):