linux c++の反発変数と条件変数
/*
* main.cpp
*
* Created on: Jul 3, 2014
* Author: john
*/
#include
#include
#include
using namespace std;
//
pthread_mutex_t mutex;
pthread_cond_t cond;
void* thread1(void* arg)
{
while(1)
{
cout<
反発変数の使用には以下の点に注意する必要があります.
1.反発変数を使用する前にpthread_を初期化する必要があります.mutex_init
2.pthread_mutex_ロック操作前に反発変数がロックされているとブロックされます
3.pthread_mutex_trylock,.足枷を試み、失敗したら、すぐに戻る.
4.pthread_mutex_unlock操作のロックは、すでにlockされている反発変数である必要があります.また、ロック解除スレッドも足かせのスレッドである必要があります.
5.使用完了後にpthread_を使用mutex_destroy
条件変数の使用には以下の点に注意する必要があります.
1.条件付きスカラーを使用する前にpthread_cond_Initオペレーション
2.pthread_cond_wait無条件待機条件変数のアクティブ化
3.pthread_conf_timedwaitブロック条件変数がアクティブになるまで、または時間まで
4.pthread_cond_Signal特定スレッドのブロック解除(複数のスレッドが条件変数のアクティブ化を待つキューで選択)、または条件変数のアクティブ化
5.pthread_cond_broadcastはすべてのスレッドのブロックを解除し、条件変数のアクティブ化を待つキュー全体が条件変数のアクティブ化の通知を受け、すぐに下に実行します.