The concurrent extension Java T of Java ε

The abstract state machine execJava defines the behavior of Java executing a single phrase at a time and by a single thread. In this chapter we extend Java e to Java T so that execJava can be embedded into a machine execJavaThread, for multithreaded Java, which provides support for execution of multiple tasks with shared main and local working memory. We consider the mechanisms Java provides for thread creation and destruction, for synchronizing the concurrent activity of threads using locks, and for waiting and notification introduced for an efficient transfer of control between threads. We describe the methods for starting (start), interrupting (interrupt), suspending (wait),and resuming (notify) threads as normal methods, which for the purpose of executability are included here into native methods.