Запускать несколько потоков одновременно, но печатать один за другим Python?

0
задан januu agrawal 19 January 2019 в 08:02
поделиться

1 ответ

Есть несколько способов сделать это, используя блокировки, а другой использует модуль logging. Я писал многопоточный код, используя threading.Lock(), но недавно я обнаружил, что logging гораздо проще в использовании.

lock = threading.Lock()
with lock:
     print("...")

with lock вызовет lock.acquire() при входе, а при выходе вызовет lock.release(). Или вы можете вызвать их вручную. Но обязательно сделайте это release после того, как вы его приобрели, иначе вы окажетесь в тупиках.

Другой более простой способ - использовать logging, как я уже упоминал. Библиотека logging является поточно-ориентированной, что означает, что любые потоки могут использовать функции одновременно. Использование этого модуля также позволяет записывать журналы в файлы журналов.

import logging

logging.basicConfig(format='%(message)s')
logging.info("...")
0
ответ дан Thu Yein Tun 19 January 2019 в 08:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: