У меня есть несколько потоков, работающих бесконечно 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
В связи с проблемой, мне нужно, чтобы все запущенные потоки получали одно и то же время, когда они проверяют это.
Возможно, я думал о создании класса с блокировкой и переменной для хранения времени. Первый поток, получивший блокировку, экономит время, так что следующие потоки могут его прочитать, но мне это кажется странным хакерский способ делать вещи (к тому же я не знаю, как проверить, когда все потоки прочитали время для его обновления).
Каков наилучший способ, если возможно, реализовать это?