私は現在マルチスレッド プログラミングを勉強していますが、スレッド間の共有リソースをマスターするのに苦労しています。
2 つの共有リソースがtime
あり、alarm
time
私には 3 つのスレッドがあり、1 つは毎秒更新し続け、もう 1 つは監視time
しalarm
、最後に 1 つはユーザーの要求に応じて変更しますtime
。alarm
これは、相互排除セマフォを使用して行われます。以下に説明する簡単なセットアップがあります。
Main
スレッド、プログラムはここから始まり、ホストtime
とalarm
共通変数をホストし、サブスレッドをインスタンス化します。Tick
サブスレッド、1000ms ごとにスリープし、Mother
スレッドのtime
変数を変更しますUserInput
サブスレッド、ユーザー入力がキャッチされるまでブロックされ、スレッド内またはいずれtime
かを変更します。alarm
Main
Alarm
サブスレッド、1000ms ごとにスリープ、alarm
==の場合にオフtime
スレッドは各リソースのMain
ミューテックスを保持するため、一度に 1 つのスレッドしかアクセスできません。
そのような設計は合理的ですか、それとも物事を複雑にしすぎているだけですか?