The Win32's support for multithreaded programming is object oriented internally, while externally it is presented with C interface and HANDLEs. This fact was shown in:
Aaron Cohen, Mike Woodring " Win32 Multithreaded Programming " (O'Reilly and Associates, 1998)
There is a C++ library, which accompanies this book.
We modified this library, but we tried to stay as close as possible to an original one; hence one can use this book as a reference to our modified library. In our interface files we placed references to chapters of this book. We denote this book as CW in these references.
Waits and waitable objects, different wait functions (including Sleep()) and base classes: "waitable.h" and "waitable.cpp"
Kernel objects' base class: "kernel.h" and "kernel.cpp"
Event: "event.h" and "event.cpp"
Mutex: "mutex.h" and "mutex.cpp"
Semaphore: "semaphore.h" and "semaphore.cpp"
Critical Section: "critical.h" and "critical.cpp"
A wrapper for threads - a base class Tread and a companion class ThreadControl. The class derived from Tread class encapsulates thread specific data, which can be accessed by another thread with proper locking. The Thread class provides an implementation for a usual thread's loop with a possible sleep in it. It supports self-destruction. The ThreadControl encapsulates control actions external to a thread, as its launch, termination, changing its priority, etc.: "thread.h" and "thread.cpp"
These files require windows.h file, which we wrapped in "win0.h" to set some values before and after windows.h #include directive.
Back to Group List