|
|
|
ACE
ACE is an object-oriented thread encapsulation C++ class library. This library shields programmers from differences between Solaris threads, POSIX pthreads, and Win32 threads. The architecture of this class library is presented from an end-user and internal design perspective and key design and implementation issues are discussed. Readers will gain an understanding of the overall design approach, as well as the tradeoffs between various software quality factors such as performance, portability, and extensibility. The ACE Locks Class Category - Mutex, Thread Mutex, and Process Mutex: These classes provide a simple and efficient mechanism that serializes access to a shared resource (such as a file or object in shared memory). They encapsulate Solaris, POSIX, and Win32 synchronization variables (mutex t, pthread mutex t, and HANDLE, respectively)
- RW Mutex, RW Thread Mutex, RW Process Mutex: These classes serialize access to shared resources whose contents are searched more than they are changed. They encapsulate the Solaris rwlock t synchronization variable (the POSIX pthreads and Win32 threads implementation uses other mechanisms)
- Semaphore, Thread Semaphore, Process Semaphore, : These classes implement Dijkstra's "counting semaphore" abstraction, which is a general mechanism for serializing multiple threads of control. They encapsulate the Solaris sema t synchronization variable (the POSIX pthreads and Win32 threads implementation use other mechanisms)
- Null Mutex: The Null Mutex class provides a zerooverhead implementation of the locking interface used by the other C++ wrappers for synchronization
- Token: The Token class provides a more generalpurpose synchronization mechanism than a Mutex. For example, it implements "recursive mutex" semantics, where a thread that owns the token can reacquire it without deadlocking. In addition, threads that are blocked awaiting a Token are serviced in strict FIFO order as other threads release the token (in contrast, Mutex don’t strictly enforce an acquisition order)
|
|