グローバル変数flag
、関数this()
、および関数がありますthat()
。現在、、、main()
およびthis()
すべてthat()
の人は、読み取りおよび/または書き込みが必要な場合がありますflag
。ミューテックスを適切に使用するには、次のことが必要です。
- a を宣言し
pthread_mutex_t
て初期化します。 this()
およびそれらのスレッドを作成しますthat()
。終了する前に終了するのを待ちpthread_join()
たいからです。main()
this()
that()
- コードのどこでも、
main()
、this()
、またはthat()
、flag
読み取りまたは書き込みが行われている場所で、呼び出してpthread_mutex_lock()
から [read/write]flag
を呼び出してから呼び出しますpthread_mutex_unlock()
あれは正しいですか?
これを行う予定はありませんが、次のようflag
に無限ループをチェックインしたい場合main()
:
while(flag != value)
continue;
あなたlock()
とミューテックス、および他のスレッドは、常にそのようにいたるところunlock()
にアクセスする機会を得ますflag
か?main()