Computing Reviews
Today's Issue Hot Topics Search Browse Recommended My Account Log In
Review Help
JThread, a deadlock-free mutex library
Grande J., Boudol G., Serrano M.  PPDP 2015 (Proceedings of the 17th International Symposium on Principles and Practice of Declarative Programming, Siena, Italy,  Jul 14-16, 2015) 149-160. 2015. Type: Proceedings
Date Reviewed: Aug 12 2015

Toilers in the orchards of multi-threaded programming can only reap the fruits of concurrent execution through the hard work of access synchronization. This paper describes the jThread library, designed to simplify correct synchronization and enhance concurrency. The library extracts modest execution costs that would most likely be covered by reliable and improved concurrent performance.

The library’s basic mechanism is the mutex, and its basic policy is to prevent and avoid deadlocks. Group locking provides prevention: all necessary mutexes are acquired at the same time, or none are. Because determining necessary mutexes may be difficult or impossible in dynamic or modular environments, the library provides regions as an abstraction of necessary mutex groups. A variant of Lamport’s bakery algorithm manages competition among regions. The appendices provide a formal definition of jThread mechanisms and a proof of non-starvation. The library has been implemented in a shared-store, multi-threaded scheme variant, and is applicable to host languages--Java, for example--without gotos and with block-structured critical sections.

Acquisition micro-benchmarks show jThread operations are from three to 50 times more expensive than basic mutex operations, which is not surprising given jThread operation complexity. Slightly more involved micro-benchmarks show essentially identical performance between jThread and basic mutexes. Comparisons between production code (web servers and MP3 players) show similar results.

Readers should have some familiarity with concurrency control in programming languages and operating systems. The bibliography is necessarily selective and surprisingly eclectic, but nevertheless relevant. The paper is well written and reads smoothly, for the most part.

Reviewer:  R. Clayton Review #: CR143686 (1511-0959)
Bookmark and Share
Concurrent Programming (D.1.3 )
Concurrent Programming Structures (D.3.3 ... )
Mutual Exclusion (D.4.1 ... )
Threads (D.4.1 ... )
Would you recommend this review?
Other reviews under "Concurrent Programming": Date
Convolutional neural networks in APL
Šinkarovs A., Bernecky R., Scholz S.  ARRAY 2019 (Proceedings of the 6th ACM SIGPLAN International Workshop on Libraries, Languages and Compilers for Array Programming, Phoenix, AZ,  Jun 22, 2019) 69-79, 2019. Type: Proceedings
Oct 31 2019
The PCL theorem: transactions cannot be parallel, consistent, and live
Bushkov V., Dziuma D., Fatourou P., Guerraoui R.  Journal of the ACM 66(1): 1-66, 2019. Type: Article
Apr 15 2019
Java threads and the concurrency utilities
Friesen J.,  Apress, Berkeley, CA, 2015. 200 pp. Type: Book (978-1-484216-99-6)
Oct 7 2016

E-Mail This Printer-Friendly
Send Your Comments
Contact Us
Reproduction in whole or in part without permission is prohibited.   Copyright © 2000-2022 ThinkLoud, Inc.
Terms of Use
| Privacy Policy