我正在编写一个心跳对象,它将继续发送请求,
但它可能会暂停并恢复。...但是我可以停止它,但无法恢复....

这是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()

10-05 18:10