An enhanced thread synchronization mechanism for Java

Hsin Ta Chiao, Shyan-Ming Yuan*

*Corresponding author for this work

Research output: Contribution to journalArticlepeer-review

3 Scopus citations


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, thus avoiding the need for any modification to the underlying Java Virtual Machine. A preprocessor is 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.

Original languageEnglish
Pages (from-to)667-695
Number of pages29
JournalSoftware - Practice and Experience
Issue number7
StatePublished - 1 Jun 2001


  • Java™
  • Monitor
  • Thread synchronization mechanism

Fingerprint Dive into the research topics of 'An enhanced thread synchronization mechanism for Java'. Together they form a unique fingerprint.

Cite this