多线程java线程问题,对吗?
我正在创建一个java服务,它将在后台持续运行,该服务的工作是在特定日期创建表的副本。确切地说,我从一些表中读取数据,如果表中的记录日期与当前日期匹配,我需要创建表副本。然后,服务应该一直休眠到下一个运行日期。下一个运行日期也是通过查看表中的记录来确定的
目前,我要做的是创建一个在while(true)循环中运行的线程。当线程完成任务,即创建表副本时,我使用线程将其置于睡眠状态。sleep()直到下次需要运行。我通过计算当前日期(线程执行任务的日期)和下一个运行日期之间的差值来计算线程睡眠的毫秒数
这是正确的方法吗?使用线程。sleep()对于这个特定场景来说是正确的吗?我这么说是因为线程的下一个运行日期可能是三个月甚至一年之后。如果我不太清楚,也请告诉我
# 1 楼答案
看看^{} interface 。这是
wait()
和notify()
的抽象,这是您应该使用的,而不是sleep()
有一个answer here说明了原因