由于要用到多线程技术,之前用过windows API,但那是windows平台的。想试一下跨平台的,网上说boost有线程库,但那是个庞然大物,编译麻烦。无意中看见Zthread,这个小巧玲珑, sourceforge就有源码下载。第一次运行就成功了,好神奇啊!
小例子:
#include <iostream>
#include <zthread/Runnable.h>
#include <zthread/Thread.h>
using namespace std;
using namespace ZThread; // Zthread所有的变量,类等都在这个名字空间内
//这个跟java的风格一样
class Counter : public Runnable
{
private:
int _id; // 给任务一个识别id
int _num; // 计数器
public:
Counter(int id):_id(id){
_num = 0; //构造函数初始化
}
void run() // 实现run函数
{
_num = 1;
while(_num <= 50)
{
cout <<"我的id :"<<_id << ": " << _num << endl;
_num++;
Thread::sleep(500 * (_id+1));
}
}
};
int main()
{
//创建线程
Thread t0(new Counter(0));
Thread t1(new Counter(1));
}
sourceforge 没有库,自己打包了一个传上来(windows平台,其它平台重新编译就OK),方便自己使用。只要把头文件和库文件路径设置正确就行