我遇到了问题:我创建了一个实现Callable的Task。此任务的任务是等待状态返回false。状态取决于服务器返回。我不知道服务器何时返回false。所以我创建了一个名为WaitForStatus的任务,如下所示。如果状态为true,则此任务将调用Thread.sleep();只要status为false,此任务就完成了。我能怎么做?
以下是我的代码:
class WaitForStatusTask implements Callable<String> {
private long waitTime;
private boolean status;
public WaitForStatusTask(boolean _status, int timeInMillis){
this.waitTime=timeInMillis;
this.status = _status;
}
@Override
public String call() throws Exception {
while(status){
System.err.println("wait..");
Thread.sleep(waitTime);
}
return "task done";
}
}
你能为我纠正这段代码吗?
答案 0 :(得分:-1)
以下代码效率低下。等待/通知(或并发实用程序)将帮助您编写干净的代码。
while(status){
System.err.println("wait..");
Thread.sleep(waitTime);
}
}
调用Future上的get()以等待任务完成的响应。