【发布时间】:2016-05-17 11:21:11
【问题描述】:
我想创建一种带有多个闹钟(计时)的闹钟,它可以计算时间并在不同时间通知我:
private List<SomeTime> timings; //can also be just the seconds to count
public void run() {
while(counting) {
//if any of the timings is reached do something
for (SomeTime time : timings) {
if(time.equals(System.getTime()) {
triggerEvent();
}
}
Thread.sleep(1000); //wait 1 second
}
}
现在这可以正常工作了,因为我每秒只检查一次足够准确的时间。但我正在寻找一种更优雅的解决方案,例如让线程休眠直到达到某个计时器,即使这意味着要创建另一个线程。
还有比这更优雅的解决方案吗?
【问题讨论】:
-
为什么不用java的timer框架呢? docs.oracle.com/javase/7/docs/api/java/util/Timer.html
标签: java multithreading thread-sleep