は私がリクエスト、 を送信し続けるハートビートオブジェクトを書いていますが、それは一時停止と再開....しかし、私はそれを止めることができますが、戻って再開することができないことがあり:Javaで安全にスレッドを停止して再開するにはどうすればよいですか?ここで <p></p>がハートビートオブジェクトです....
次のようにpublic void startBeating() {
heartBeatTask = new HeartBeatTask(monitorInterval);
heartBeatTaskThread = new Thread(heartBeatTask);
}
public void stopBeating() {
heartBeatTask.setKeepHeartBeat(false);
}
public void beating() {
heartBeatTask.setKeepHeartBeat(true);
}
@Override
public void run() {
this.startBeating();
this.beating();
heartBeatTaskThread.start();
}
そしてheartBeatTask:
public HeartBeatTask(long aHeartBeatInterval){
this.heartBeatInterval = aHeartBeatInterval;
}
@Override
public void run() {
while(isKeepHeartBeat()){
System.out.println("beating");
try {
Thread.sleep(this.heartBeatInterval);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
両方のオブジェクトは、私が打撃を再開することができないことを間違って何が起こっているのか、Javaで実行可能なオブジェクトです:
01私は、軸受を止める方法this.beating();
::私は鼓動を再開方法
this.stopBeating();
代わりに 'wait'と' notify'を試してみませんか? –