Как передать данные между потоками

Python Middle СБЕР Центр ИИ
Как передать данные между потоками
Ответы
В Python для передачи данных между потоками можно использовать несколько подходов: - **Очереди (Queue)** - потокобезопасный способ. Пример: ``` from queue import Queue from threading import Thread def worker(q): while True: item = q.get() print(f'Обработано: {item}') q.task_done() q = Queue() Thread(target=worker, daemon=True).start() q.put('данные1') q.put('данные2') q.join() # ждем завершения обработки ``` - **Глобальные переменные** - требует синхронизации через Lock: ``` from threading import Lock shared_data = [] lock = Lock() def thread_func(): with lock: shared_data.append('value') ``` - **Event или Condition** - для уведомлений между потоками. Очереди (Queue) - наиболее предпочтительный способ, так как они изначально потокобезопасны и предоставляют удобный интерфейс для producer-consumer взаимодействия. Глобальные переменные требуют ручной синхронизации и могут привести к race condition, если не использовать Lock.