The thread pool, is so simple and easy to use. Do you have any reason to refuse?
Here are mainly introduced about the use of task thread pool and structure.
-
OETask
task base class, pool call
doWork
function.derived class: main logic function.
virtual int doWork() = 0;
-
OETaskQueue
The management of the task,for example: add/sub/recall status.
-
OEThreadPool
The processing of the thread pool
task thread pool extend, we provide a good solution.
inherit OETask
, complete the main logic function.
for example: see TaskTest.h
.
Regarding the thread pool configuration, we also set aside the interface
use class OEThreadPool
:: struct tagThreadPoolConfig
and function init
, can config thread pool.
Code has more detailed comments, but I still want to post here again, though he is very simple, but it seems very important.
/// thread config
typedef struct tagThreadPoolConfig {
int nMaxThreadsNum; /// max thread number
int nMinThreadsNum; /// min thread number
double dbTaskAddThreadRate; /// add - max thread task rate (decide when to increase)
double dbTaskSubThreadRate; /// sub - max thread task rate (decide when to reduce)
} ThreadPoolConfig;
before init, thread pool didn't do anything.
You didn't do anything, You get it.
I just hope find the insufficient, if you get wrong anything, please tell me. thanks.
Before this, you should star to it, I believe that it can keep in touch between you and me.
If you are an overseas Chinese who can contact the server in we home, you may need this article [Go].