p12ab

Abstract. 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 behaviour 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 behaviour of synchronization and scheduling of threads at a higher level of abstration, 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