University of Cambridge

Logic
&
Semantics

Thimble --- Threads for MLj

By Ian Stark (5th November 1999)

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.

thitfm-sfp.html

LS Home page or Talks in 1999/2000