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