Semantics : StartThreadStatement

StartThreadStatement  ::=  start ( daemon )? thread ( Expr )?
( FUNCTION_NAME ( Arguments )? ; ) | FormalParameters Block )

Used by:  

This statement starts a thread. The thread can be already defined or anonymously defined on the fly. The thread can be started as a daemon thread (see Java documentation on this.)

A thread runs in its own context. It only shares the global data with other threads, including its creator. There are system functions such as lock(), unlock(), wait(), notify() and notifyAll() for thread synchronization and critical section implementation.