Поток синхронизировал чтение времени - PullRequest
0 голосов
/ 23 мая 2019

У меня есть несколько потоков, работающих бесконечно 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

В связи с проблемой, мне нужно, чтобы все запущенные потоки получали одно и то же время, когда они проверяют это.

Возможно, я думал о создании класса с блокировкой и переменной для хранения времени. Первый поток, получивший блокировку, экономит время, так что следующие потоки могут его прочитать, но мне это кажется странным хакерский способ делать вещи (к тому же я не знаю, как проверить, когда все потоки прочитали время для его обновления).

Каков наилучший способ, если возможно, реализовать это?

...