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

I. Installation.
II. Threading primitives.
III. NonBlockingQueue.
IV. ThreadPool.
1. ThreadPool prototypes.
2. Acceptance test for the ThreadPool.
V. ThreadMaster.
VI. OTS Scheduler.
VII. Bibliography
Downloads. Index. Contents.

ThreadPool.


onsider the following problem. Several threads are maintained from a manger thread to execute given tasks repeatedly until the program is aborted. Each of these tasks may throw boost::thread_resource_error. The boost::thread documentation does not explain the conditions when such exception may be thrown. However, we aim to terminate such thread and replace it with a newly created thread. The difficulty of such operation is in passing information to the manager thread. Indeed, if an offending thread has a thread resource problem then it is logical to assume that any synchronization operation would throw as well. Hence, we cannot use any mutex-protected data to pass information between threads in such situation. Instead, we use the thread interruption facility of the boost::thread library because the operation of requesting an interruption of another thread never throws. Hence, the offending thread can always signal its condition by interrupting something. Implementation of such thread-maintenance strategy is the ots::scheduler::ThreadPool class.




1. ThreadPool prototypes.
2. Acceptance test for the ThreadPool.

Downloads. Index. Contents.


















Copyright 2007