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.
This work was supported both by the National Science Council grant NSC88-2213-E-009-087 and the industry reaearch program
89-EC-2-A-17-0285-006 of the ROC Economic Bureau.