Still other operating systems have a native notion of threads, and their libraries are thread-aware and support locking. However, if local threads are also present, and they are preemptable, they are subject to deadlock. NSPR threads are interruptable, with some constraints and inconsistencies. When the target is interrupted, it is rescheduled from the point at which it was blocked, with a status error indicating that it was interrupted. In neither case does being interrupted imply the demise of the thread.
Notification involves passing synchronization information among cooperating threads.
When a programmer associates a mutex with an arbitrary collection of data, the mutex provides a protective monitor around the data. In general, a monitor is a conceptual entity composed of a mutex, one or more condition variables, and the monitored data. Monitors in this generic sense should not be confused with the monitor type used in Java programming. In addition to PRLock , NSPR provides another mutex type, PRMonitor , which is reentrant and can have only one associated condition variable. PRMonitor is intended for use with Java and reflects the Java approach to thread synchronization.