|
Logic & Semantics |
Thimble is a concurrency library for MLj, the open source ML-to-Java bytecode compiler. Thimble allows MLj programs to run multiple concurrent threads that safely communicate through typed channels, without having to reach down for the underlying Java monitors. In addition Thimble events provide efficient multiway synchronization, so that a thread can choose between inputs from several different channels without the need for busy waiting. Both channels and events are first-class values, and Thimble provides a range of operations for users to roll their own varieties while maintaining data integrity in a multithreaded environment. Everything is written in MLj, building these high-level features on to the basic concurrency facilities guaranteed by any Java virtual machine.
This talk will present an overview of the library and its implementation. Although "logic and semantics" contributed considerably to its design, it may require a keen eye to spot this in the talk, where such aspects are likely to remain implicit.