@InProceedings{Moores00, title = "{N}ative {JCSP} - the {CSP} for {J}ava library with a {L}ow-{O}verhead {CSP} {K}ernel", author= "Moores, James", editor= "Welch, Peter H. and Bakkers, Andr\`{e} W. P.", pages = "263--274", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2000", isbn= "1 58603 077 9", year= "2000", month= "sep", abstract= "The JCSP library provides a superior framework for building concurrent Java applications. Currently, CSP is a collection of classes that uses the standard Java Threads mechanism to provide low-level facilities such a process scheduling and synchronization. The overheads of using Java Threads can be quite large though, especially for synchronization and context switching. This paper begins by describing various options for increasing performance, and then how the standard Java threads work. The integration of the low-overhead CCSP run-time system into a Linux-based Sun JDK 1.2.1 Java Virtual Machine is then described. This integration provides the low-level support required to dramatically increase the performance of the JCSP library's model of concurrency. The paper then looks at the problem of maintaining backward compatibility by preserving the functionality of the existing threads mechanism on which much legacy code depends. The paper finishes by looking at the performance displayed by the current prototype JVM and contrasting it with the performance of both Green (co-operatively scheduled) and Native (operating-system scheduled) Java Threads." }