我正在编写一个心跳对象,它将继续发送请求,
但它可能会暂停并恢复。...但是我可以停止它,但无法恢复....
这是HeartBeat对象:
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中的可运行对象,出了问题,我无法继续跳动:
我如何恢复跳动:
this.beating();
我如何停止轴承:
this.stopBeating();
最佳答案
一种解决方案是使用wait()和notify()