%T Communicating Java Threads
%A  Gerald H. Hilderink,  Jan F. Broenink,  Wiek Vervoort,  Andr\[`e] W. P. Bakkers
%E  Andr\[`e] W. P. Bakkers
%B Proceedings of WoTUG\-20: Parallel Programming and Java
%X The incorporation of multithreading in Java may be
   considered as a significant part of the Java language,
   because it provides rudimentary facilities for concurrent
   programming. However, we belief that the use of channels is
   a fundamental concept for concurrent programming. The
   channel approach as described in this paper is a realization
   of a systematic design method for concurrent programming in
   Java based on the CSP paradigm. CSP requires the
   availability of a Channel class and the addition of
   composition constructs for sequential, parallel and
   alternative processes. The Channel class and the constructs
   have been implemented in Java in compliance with the
   definitions in CSP. As a result, implementing communication
   between processes is facilitated, the programmer can avoid
   deadlock more easily, and the programmer is freed from
   synchronization and scheduling constructs. The use of the
   Channel class and the additional constructs is illustrated
   in a simple application.