Actors: a model of concurrent computation in distributed systems
Actors: a model of concurrent computation in distributed systems
About the semantic nested monitor calls
ACM SIGPLAN Notices
Concurrent programming: principles and practice
Concurrent programming: principles and practice
Analysis of inheritance anomaly in object-oriented concurrent programming languages
Research directions in concurrent object-oriented programming
ACM Computing Surveys (CSUR)
Experience using the C preprocessor to implement CCR, monitor, and CSP preprocessors for SR
Software—Practice & Experience
Java Threads
Software—Practice & Experience
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
Communicating sequential processes
Communications of the ACM
Monitors: an operating system structuring concept
Communications of the ACM
Concurrent Programming in Java. Second Edition: Design Principles and Patterns
Concurrent Programming in Java. Second Edition: 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
Toward Reusable Synchronisation for Object-Oriented Languages
ECOOP '98 Workshop ion on Object-Oriented Technology
FJM2: a decentralized JMS system
TEAA'06 Proceedings of the 2nd international conference on Trends in enterprise application architecture
Hi-index | 0.01 |
The thread synchronization mechanism of Java is derived from Hoare's monitor concept. In the authors' view, however, it is over simplified and suffers the following four drawbacks. First, it belongs to a category of no-priority monitor, the design of which, as reported in the literature on concurrent programming, is not well rated. Second, it offers only one condition queue. Where more than one long-term synchronization event is required, this restriction both degrades performance and further complicates the ordering problems that a no-priority monitor presents. Third, it lacks the support for building more elaborate scheduling programs. Fourth, during nested monitor invocations, deadlock may occur. In this paper, we first analyze these drawbacks in depth before proceeding to present our own proposal, which is a new monitor-based thread synchronization mechanism that we term EMonitor. This mechanism is implemented solely by Java, employed to translate the EMonitor syntax into the pure Java codes that invoke the Emonitor class libraries. We conclude with a comparison of the performance of the two monitors and allow the experimental results to demonstrate that, in most cases, replacing the Java version with the Emonitor version for developing concurrent Java objects is perfectly feasible. Copyright 2001 John Wiley & Sons, Ltd.