A structured approach for developing concurrent programs in Java - Mizuno, Masaaki (Information processing letters, 1999)
In recent years, concurrent programming has become the norm rather than the exception in many applications. In particular, popularity of the Java programming language has accelerated this trend. The Java programming language encourages the use of multiple threads. A translation from coarse-grained solutions to efficient fine-grained programs in Java synchronization primitives that preserves global invariants is presented.