naobe @ ウィキ
pthread
最終更新:
naobe
-
view
UNIX/Linuxに戻る。
基本的な動き
- pthread_attr_initでスレッド属性を初期化する。
- pthread_attr_XXXでスレッド属性を設定する
- pthread_createでスレッドを作成、実行する
- pthread_joinで起動したスレッドの終了を待つ
排他
スレッドはグローバル変数を共有する。よって同時並行で稼働するスレッド間でグローバル変数の競合が発生する。競合を防ぐためにmutexを作成してロックする。
スレッドの終了
デタッチで起動すると、関数終了時にスレッドは終了しリソースを開放する。ジョインで起動すると、関数が終了して、他のスレッドが、pthread_joinしたときにリソースを開放する。
インタフェース
全てのインタフェースの戻り値は、0;正常,非0:エラーコード
インタフェース | 引数 | 説明 |
---|---|---|
int pthread_attr_setdetachstate(pthread_attr_t *attr, int detachstate); | attr:スレッド属性, detachstate:PTHREAD_CREATE_JOINABLE/PTHREAD_CREATE_DETACHED | デタッチ状態を設定する。 |
int pthread_mutex_init(pthread_mutex_t *mutex, const pthread_mutexattr_t *mutexattr); | mutex:相互排他, mutexattr; | mutexを初期化する。mutexattrがNULLのときは、デフォルト(fast)。fastは、mutexをロックしようとしたときに既にロックされていた場合は、永久に待つ。 |