これは私が以前に悪い点数をとった試験問題ですが、今回は正しい問題を解こうとしています。誰かが私を正しい方向に向けることができれば幸いです、ありがとう。
私の質問は、提供されたソリューションは問題を解決するために何らかの方法で正しいですか? どうすれば改善できるでしょうか。
私のコードは質問に従います。
質問:
イベント オブジェクトには、シグナル状態または非シグナル状態の 2 つの状態のいずれかがあります。イベントがシグナル状態になると、すべてまたは 1 つの待機中のスレッドが解放されます。非シグナル状態にリセットされると、すべてのユーザー スレッドは強制的に待機します。イベントは、非シグナル状態にリセットされるまでシグナル状態のままです。基本的な考え方は、1 つまたは複数のスレッドがイベントの発生を待機できるというものです。待機していたイベントが発生すると、スレッドは必要なアクションを実行します。wait/notify を使用して Event クラスを記述します。
私の試み:
class Event {
boolean signal;
String obj = new String();
public Event(boolean signal) {
this.signal = signal;
}
synchronized void getSignal(){
while(!signal)
try{
wait();
}
catch(InterruptedException e) {}
}
public void setSignal(boolean signal) {
synchronized (this) {
this.signal = signal;
this.notifyAll();
}
}
}