Although locks were derived for file databases, data is also shared in memory between processes and threads.
Instead, the coupling between threads happens via well-defined communication points and rendezvous.
These allow programs to easily exchange data between threads asynchronously.
To enable sharing, between clients and threads, Flyweight objects must be immutable.
The language supports the use of multi-threading, and the synchronization between threads.
Each core is a barrel processor, meaning it switches between available threads each cycle.
Coarse-grain multithreading is more common for less context switch between threads.
Note that the relationship between cores and threads is a common source of confusion.
Thus, it is often important to impose an explicit ordering between threads which have aliases.
Cal could see nothing through the hood that covered his head but the glint of light between dark threads.