thread.h (スレッド)
C++で簡単にスレッドを使うためのヘッダファイル.kstm.orgの活動の一環としてつくられたソフトの一部だった気もします.
Win32とpthreadに対応してます.前半だけ使えばWin32上でpthreadっぽく書くためにも使えます.CriticalSectionをmutexとして使えます.
利用の制限はありません.個人の責任において自由に使ってください.
サンプル
- VC++: 普通にコンパイル
- gcc: g++ threadtest.cpp -lpthread
#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
- start() スレッドを開始
- join() スレッドの終了を待つ(wait()も同じ)
- detach() スレッドを切り離す(以降スレッドを外部から操作しない)
- cancel() スレッドを中断(スレッド中で定期的にcancelpoint()を呼ぶ必要あり)
- Win32限定:suspend,resume,abortで一時停止,再開,強制終了
Mutex
- lock() ロック
- unlock() アンロック
- trylock() ロックできればtrue (Win9xでは使用不可)
MLock
Mutexをロックしておくためのオブジェクト
履歴
- 2008-09-03 公開
- 2009-01-22 Mutexクラスを追加
Copyright © binzume all rights reserved.