我有多个线程运行无限while true
,而他们彼此之间并不知道彼此的存在。
在它们各自的循环中,我需要它们检查时间并在下一次迭代之前基于该时间进行操作,如下所示:
Thread:
while True:
now = timedate.now()
# do something
time.sleep(0.2)
这些线程是通过以下方式在我的主程序中启动的:
Main:
t1.start()
t2.start()
t3.start()
...
...
while True:
#main program does something
问题是,我需要所有正在运行的线程在检查它们的同时接收相同的时间。
我当时正在考虑创建一个带有锁的类并使用一个变量来存储时间,第一个获得锁的线程将时间保存在其中,以便后续线程可以读取它,但是对我来说,这似乎是一个经典一种变态的处理方式(再加上我不知道如何检查所有线程何时都已读取更新时间)。
如果可能的话,最好的方法是什么?