【发布时间】:2014-12-21 17:41:59
【问题描述】:
我有一个问题:我创建了一个实现 Callable 的任务。该任务有一个等待状态返回为假的任务。状态取决于服务器返回。我不知道服务器何时返回 false。所以我创建了一个名为 WaitForStatus 的任务,如下所示。如果状态为真,此任务将调用 Thread.sleep();只要状态为假,此任务就会完成。我能怎么做?
下面是我的代码:
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";
}
}
你能帮我更正这段代码吗?
【问题讨论】:
-
将状态更改为false的代码在哪里,为什么在c'tor中将状态作为参数?可以从while循环中查询到服务器的状态吗?
-
是的,我可以查询服务器的状态如下。 while (status) { //我的代码 }
-
状态是从服务器返回。该任务只等待它返回false。每当它返回 false 时,任务就完成了。这就是我的想法
标签: java threadpool callable futuretask