4 Общение между потоками

В вашем коде несколько потоков, и вам нужно безопасно общаться между ними.

Вы можете использовать Queue из queue библиотеки.

 from queue import Queue
from threading import Thread

# create a data producer 
def producer(output_queue):
    while True:
        data = data_computation()

        output_queue.put(data)

# create a consumer
def consumer(input_queue):
    while True:
        # retrieve data (blocking)
        data = input_queue.get()

        # do something with the data

        # indicate data has been consumed
        input_queue.task_done()

 

Создание потоков производителей и потребителей с общей очередью

 q = Queue()
t1 = Thread(target=consumer, args=(q,))
t2 = Thread(target=producer, args=(q,))
t1.start()
t2.start()