Quantitative Analysis
Parallel Processing
Numerical Analysis
C++ Multithreading
Python for Excel
Python Utilities
Services
Author

I. Installation.
II. Threading primitives.
III. NonBlockingQueue.
IV. ThreadPool.
V. ThreadMaster.
VI. OTS Scheduler.
VII. Bibliography

C++ multithreading.


his section contains generic event processing engine. The engine provides encapsulated and adjustable implementation of multithreading and exception safety.

The code illustrates recipes for automated compiler-assisted prevention of race condition and starvation.



Table of Contents.

I. Installation.
1. Directory structure.
2. Setting up development environment.
A. Windows notes.
a. MSys notes.
b. Boost on Windows notes.
c. STLport notes.
d. MS Visual C++ 7.1 notes.
B. Ubuntu notes.
a. Installing double monitors for Linux Ubuntu.
II. Threading primitives.
1. Encapsulation of primitives.
2. Preventing starvation.
A. RWMutex.
B. Exception safe locking of RWMutex.
3. Preventing race condition.
A. Guard primitives.
a. ReaderGuard.
b. WriterGuard.
c. UpgradeGuard.
d. TryGuard.
4. Barriers.
A. SignaledBarrier.
B. SignaledCountingBarrier.
C. SignaledCountingBarrier2.
D. Barrier.
III. NonBlockingQueue.
1. NonBlockingQueue design.
2. Simplest example with NonBlockingQueue.
3. NonBlockingQueue prototypes.
A. NonBlockingQueue data fields.
B. NonBlockingQueue::push member function.
C. NonBlockingQueue::pop member function.
D. NonBlockingQueue::Element.
E. NonBlockingQueue::Node.
4. Python-based acceptance test of NonBlockingQueue.
A. Basic Python API for NonBlockingQueue.
B. Multithreaded test of NonBlockingQueue.
IV. ThreadPool.
1. ThreadPool prototypes.
2. Acceptance test for the ThreadPool.
V. ThreadMaster.
1. ThreadMaster prototypes.
2. Acceptance test for the ThreadMaster.
VI. OTS Scheduler.
1. Scheduler implementation.
A. Node class.
a. Initial processing of an update event.
b. Processing of out-of-date Nodes.
B. Exception handling policy.
2. Customization of Scheduler. Interfaces IOrigin and IProxy.
3. Acceptance test for the Scheduler.
VII. Bibliography



















Copyright 2007