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をロックしようとしたときに既にロックされていた場合は、永久に待つ。
人気記事ランキング
ウィキ募集バナー