provide a light weight capsule of pthread
编译需要链接 pthread
在linux下编译参数可以是
g++ main.cpp TM.cpp -lpthread -O3
提供一个pthread的轻量级封装.
每个任务只需要从TM:Job继承出一个类,并且将实例化的类变量指针传给ThreadManager ,
ThreadManager就可以从任务队列中取出人物,然后运行任务的run函数。
需要互斥操作的话,只需要实例化一个Mutex,然后再Mutex.lock(), Mutex.unlock()即可
并行程序的书写问题大多是比较麻烦的,虽然代码不长,但是经常需要非常大的工作量,利用这个多线程池可以非常快速的完成一个高效的多线程程序。
```
#include
#include
#include
#include
#include "TM.h"
using namespace std;
using namespace TM;
Mutex mut;
class Task1 :public Job{
public:
void run(void)
{
mut.lock();
for (int i = 0;i < 100;i++) {
usleep(1);
printf("1");
fflush(stdout);
}
putchar(10); fflush(stdout);
mut.unlock();
}
};
class Task2: public Task1
{
public:
void run()
{
mut.lock();
for (int i = 0;i < 100;i++) {
usleep(1);
printf("2");
fflush(stdout);
}
putchar(10); fflush(stdout);
mut.unlock();
}
};
class Task3 :public Job{
pu