2

C++ スレッド同期に関する質問です。Thread1 と Thread2 の 2 つの pthread があるとします。

  • Thread1 はそのタスクに従事しており、場合によっては、状態の更新を Thread2 に通知する必要があります。

  • Thread2 は、同期キューからデータを抽出する作業を行っています。そのため、キューが空の場合、Thread2 はスリープできます。

次の 2 つの条件で Thread2 を起動するにはどうすればよいですか。

  • キュー内の新しいメッセージ通知。

    また

  • Thread1 の状態変化

実用的なコード例は大歓迎です

4

2 に答える 2

2

簡単にするために、スレッド 1 がステータス変更通知をタスクとしてキューに挿入し、スレッド 2 がそれを消費できるようにします。通知の優先度が通常の作業タスクよりも高い場合は、Thread1 がそれ​​を他のタスクの前にキューに挿入できるようにして、次に消費されるようにします。

于 2013-06-08T09:33:27.890 に答える