thread.h (スレッド)

C++で簡単にスレッドを使うためのヘッダファイル. kstm.orgの活動の一環としてつくられたソフトの 一部だった気もします.

Win32とpthreadに対応してます. 前半だけ使えばWin32上でpthreadっぽく書くためにも使えます. CriticalSectionをmutexとして使えます.

利用の制限はありません.個人の責任において自由に使ってください.

サンプル

#include <iostream>
#include "thread.h"
using namespace std;

// 継承して使う例
class MyThread : public Thread {
	int num;
public:
	MyThread(int d) :num(d) {}
	int task(){
		int i;
		for (i=0;i<100;i++) {
			Sleep(10);
			cout << num ;
		}
		return 0;
	}
};

// コールバック関数の例
int func(Thread *t) {
	int i;
	for (i=0;i<100;i++) {
		Sleep(10);
		cout << "0";
	}
	return 0;
}


int main(int argc, char **argv){
	MyThread t1(1),t2(2),t3(3);
	ThreadFunc t0(func);

	// 開始
	t1.start();
	t2.start();
	t3.start();
	t0.start();

	// 待つ
	t1.join();
	t2.join();
	t3.join();
	t0.join();

	return 0;
}

使い方

ヘッダファイルなのでincludeするだけです. 何もたいしたことやってないので,ソースを見てください.

継承して使うためのThreadと,コールバック関数を呼んでくれるThreadFuncがあります.

Thread

Mutex

MLock

Mutexをロックしておくためのオブジェクト

履歴