Я пытаюсь запустить несколько строк в thread1 в соответствии с событием из thread2. Оба потока постоянно работают в цикле "True". Проблема в том, что я не могу запустить требуемые строки ТОЛЬКО в случае возникновения события.
Кстати, оба потока используют общий ресурс (список) и могут быть синхронизированы с помощью метода блокировки. Это также не сработало для меня.
frames_list = []
new_frame = Event()
result = 0
def thr1():
global frames_list
global frames_list_max_size
global result
while True:
new_frame.set()
result = result + 1
new_frame.clear()
def thr2():
global result
while True:
new_frame.wait()
print(datetime.datetime.now())
print(result)
threads = []
for func in [thr1, thr2]:
threads.append(Thread(target=func))
threads[-1].start()
for thread in threads:
thread.join()
результат, например:
2019-10-19 22:35:34.150852
1710538
2019-10-19 22:35:34.173803
1722442
2019-10-19 22:35:34.197736
1737844
2019-10-19 22:35:34.214684
1740218
2019-10-19 22:35:34.220664
1749776
Я ожидаю: 1. Разница во времени между каждым отпечатком будет 1 сек. 2. результат будет увеличиваться на 1 для каждого отпечатка.