The Java thread model provides support for multithreading within the language and runtime system of Java. The Java synchronization and scheduling strategy is poorly specified and turns out to be of unsatisfactory real-time performance. The idea of Java is to let the underlying operating system specify the synchronization and scheduling principles. This may possibly result in different behavior on different operating systems whereas Sun claims Java to be system independent – “write once, run everywhere”. In this paper we present a comprehensive specification for a new thread model for the Java platform. The theory of CSP fully specifies the behavior of synchronization and scheduling of threads at a higher level of abstraction, which is based on processes, compositions and synchronization primitives. The CSP concept is well thought-out and has been proven to be successful for realizing concurrent software for real-time and embedded systems. The Communicating Threads for Java (CTJ) packages that is presented in the paper provides a reliable CSP/thread model for Java. The CTJ software is available from our URL http://www.rt.el.utwente.nl/javapp.
[1]
C. A. R. Hoare,et al.
Communicating sequential processes
,
1978,
CACM.
[2]
Ivar Jacobson,et al.
The Unified Modeling Language User Guide
,
1998,
J. Database Manag..
[3]
Ken Arnold,et al.
The Java Programming Language
,
1996
.
[4]
William E. Lorensen,et al.
Object-Oriented Modeling and Design
,
1991,
TOOLS.
[5]
Jim Davies,et al.
Real-time CSP
,
1994
.
[6]
Andrew William Roscoe,et al.
The Theory and Practice of Concurrency
,
1997
.
[7]
Bil Lewis,et al.
Threads Primer: A Guide to Multithreaded Programming
,
1995
.
[8]
Doug Lea,et al.
Concurrent Programming In Java
,
1996
.