About the semantic nested monitor calls
ACM SIGPLAN Notices
Concurrent programming: principles and practice
Concurrent programming: principles and practice
ACM Computing Surveys (CSUR)
Experience using the C preprocessor to implement CCR, monitor, and CSP preprocessors for SR
Software—Practice & Experience
Java Threads
Thin locks: featherweight synchronization for Java
PLDI '98 Proceedings of the ACM SIGPLAN 1998 conference on Programming language design and implementation
A comparison of the concurrency features of Ada 95 and Java
Proceedings of the 1998 annual ACM SIGAda international conference on Ada
What after Java? From objects to actors
WWW7 Proceedings of the seventh international conference on World Wide Web 7
Evaluation of Java thread performance on two different multithreaded kernels
ACM SIGOPS Operating Systems Review
Monitors: an operating system structuring concept
Communications of the ACM
Concurrent Programming in Java: Design Principles and Patterns
Concurrent Programming in Java: Design Principles and Patterns
The Java Language Specification
The Java Language Specification
Capsules: A Shared Memory Access Mechanism for Concurrent C/C++
IEEE Transactions on Parallel and Distributed Systems
A verified implementation of priority monitors in java
FoVeOOS'11 Proceedings of the 2011 international conference on Formal Verification of Object-Oriented Software
ISPA'07 Proceedings of the 5th international conference on Parallel and Distributed Processing and Applications
Hi-index | 0.00 |
The thread synchronization mechanism employed by Java is derived from the Hoare's monitor concept. In order to minimize its implementation complexity, the monitor provided by Java is quite primitive. This design decision prefers simple concurrent objects and single-thread programs. However, we think the Java monitor is over simplified for developing more elaborated concurrent objects. Besides, several features of the Java monitor will bring extra overhead when thread contention gets higher. Currently, we have identified five drawbacks of the Java monitor. In this paper, we will first analyze these drawbacks in depth, and then propose a new monitor-based synchronization mechanism called EMonior. It has better expressive power, and introduces fewer overheads than the Java monitor when contention occurs. EMonior uses a preprocessor to translate the Java programs containing EMonitor syntax to regular Java programs that invoke EMonitor class libraries. It is very suitable to replace the Java monitor with the EMonitor when developing elaborate concurrent objects or high-contention concurrent systems.