【发布时间】:2014-10-10 00:03:20
【问题描述】:
在我的线程中,我应该每x 秒做一件事。例如。让x=3,它应该在几秒钟内做那件事1, 4, 7, ...。
在x 秒内创建线程wait() 是不行的——因为在x 秒内它可能会被其他事情打断
期间,因此无法跟踪在它应该的方式之间经过的时间。
因此,线程应该想出一种有效的方法来让自己知道x 秒已经过去了。
这样做的有效方法是什么?
我现在唯一的方法是继续检查系统时钟以找出它是秒 1、4 还是 7,即秒 i 哪里 i%3==1。
但是,这太浪费了,也没有任何好处。
最好的方法是什么?
TIA。
//=====================
编辑:
我认为这将是一种查找系统时钟并在每个时间间隔打断我的方法。
Java 在某处有这样的方法吗?
【问题讨论】:
-
您在寻找
Timer吗?可能是scheduleAtFixedRate方法之一? -
@ajb 将看到计时器。你所做的似乎也不错,但我宁愿使用 Java 所拥有的(如果有的话)
标签: java multithreading clock