【发布时间】:2013-01-06 00:53:02
【问题描述】:
Java 中是否有执行以下操作的库? thread 应该重复 sleep x 毫秒,直到条件变为真或达到最大时间。
这种情况主要发生在测试等待某个条件变为真时。条件受另一个thread 影响。
[编辑]为了更清楚,我希望测试在失败之前只等待 X 毫秒。它不能永远等待条件变为真。我正在添加一个人为的示例。
class StateHolder{
boolean active = false;
StateHolder(){
new Thread(new Runnable(){
public void run(){
active = true;
}
}, "State-Changer").start()
}
boolean isActive(){
return active;
}
}
class StateHolderTest{
@Test
public void shouldTurnActive(){
StateHolder holder = new StateHolder();
assertTrue(holder.isActive); // i want this call not to fail
}
}
【问题讨论】:
-
如果有另一个线程控制它,你能用等待/通知而不是轮询设置一个实际的“完成”信号吗?
-
条件受另一个线程影响 我可以说我可以在这里使用线程连接吗?无论如何 +1 的问题。
标签: java multithreading sleep