Thin locks
- 1 May 1998
- journal article
- Published by Association for Computing Machinery (ACM) in ACM SIGPLAN Notices
- Vol. 33 (5) , 258-268
- https://doi.org/10.1145/277652.277734
Abstract
Language-supported synchronization is a source of serious performance problems in many Java programs. Even single-threaded applications may spend up to half their time performing useless synchronization due to the thread-safe nature of the Java libraries. We solve this performance problem with a new algorithm that allows lock and unlock operations to be performed with only a few machine instructions in the most common cases. Our locks only require a partial word per object, and were implemented without increasing object size. We present measurements from our implementation in the JDK 1.1.2 for AIX, demonstrating speedups of up to a factor of 5 in micro-benchmarks and up to a factor of 1.7 in real programs.This publication has 11 references indexed in Scilit:
- Monitors and exceptions: how to implement Java efficientlyConcurrency: Practice and Experience, 1998
- Algorithms for scalable synchronization on shared-memory multiprocessorsACM Transactions on Computer Systems, 1991
- The performance of spin lock alternatives for shared-memory multiprocessorsIEEE Transactions on Parallel and Distributed Systems, 1990
- A fast mutual exclusion algorithmACM Transactions on Computer Systems, 1987
- The mutual exclusion problemJournal of the ACM, 1986
- Efficient synchronization of multiprocessors with shared memoryPublished by Association for Computing Machinery (ACM) ,1986
- Basic Techniques for the Efficient Coordination of Very Large Numbers of Cooperating Sequential ProcessorsACM Transactions on Programming Languages and Systems, 1983
- Experience with processes and monitors in MesaCommunications of the ACM, 1980
- MonitorsCommunications of the ACM, 1974
- Solution of a problem in concurrent programming controlCommunications of the ACM, 1965