ID: Q105678
3.50 3.51 4.00 | 4.00
WINDOWS NT | WINDOWS
kbprg
The information in this article applies to:
- Microsoft Windows NT versions 3.5, 3.51, 4.0
- Microsoft Windows 95 version 4.0
Critical sections and mutexes provide synchronization that is very similar, except that critical sections can be used only by the threads of a single process. There are two areas to consider when choosing which method to use within a single process:
1. Speed. The Synchronization overview says the following about
critical sections:
... critical section objects provide a slightly faster, more
efficient mechanism for mutual-exclusion synchronization.
Critical sections use a processor-specific test and set instruction
to determine mutual exclusion.
2. Deadlock. The Synchronization overview says the following about
mutexes:
If a thread terminates without releasing its ownership of a
mutex object, the mutex is considered to be abandoned. A waiting
thread can acquire ownership of an abandoned mutex, but the wait
function's return value indicates that the mutex is abandoned.
WaitForSingleObject() will return WAIT_ABANDONED for a mutex that
has been abandoned. However, the resource that the mutex is
protecting is left in an unknown state.
There is no way to tell whether a critical section has been
abandoned.
KBCategory: kbprg
KBSubcategory: BseSync
Additional reference words: 3.50 3.51 4.00 95
Keywords : kbKernBase kbThread kbGrpKernBase
Version : 3.50 3.51 4.00 | 4.00
Platform : NT WINDOWS
Last Reviewed: January 19, 1997