Сообщения регистратора не отображаются в ожидаемом порядке при использовании с concurrent.futures.ThreadPoolExecutor.Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Сообщения регистратора не отображаются в ожидаемом порядке при использовании с concurrent.futures.ThreadPoolExecutor.

Сообщение Anonymous »

В:
import concurrent.futures
import logging
import time
from concurrent.futures import ThreadPoolExecutor

def thread_function(name):
# logging.info("Thread %s: starting", name)
print(f'Thread {name}: starting')
time.sleep(2)
print(f'Thread {name}: finishing')
# logging.info("Thread %s: finishing", name)

def hello(i):
time.sleep(i)
print(i)

if __name__ == "__main__":
format = "%(asctime)s: %(message)s"
logging.basicConfig(format=format, level=logging.INFO, datefmt="%H:%M:%S")

logging.info('Before tpe')

with ThreadPoolExecutor(max_workers=3) as executor:
result = executor.map(thread_function, range(3))

logging.info('After tpe')

print('out here')
time.sleep(3)
print('out there')

В отличие от печати, средство ведения журнала не создает сообщения в ожидаемом порядке. При регистрации сообщения Before tpe и After tpe чередуются с сообщениями в thread_function.
Этого не должно быть. Можно ли использовать регистратор для отображения сообщений в ожидаемом порядке? порядок должен меняться только между запусками внутри thread_function, но сообщения до и после исполнителя всегда должны находиться в одних и тех же позициях (до/после)
Проблема заключалась в использовании регистратора с print() в то же время. Использование только регистратора дает ожидаемый результат:
22:34:33: Before tpe
22:34:33: Thread 0: starting
22:34:33: Thread 1: starting
22:34:33: Thread 2: starting
22:34:35: Thread 1: finishing
22:34:35: Thread 0: finishing
22:34:35: Thread 2: finishing
22:34:35: After tpe
22:34:35: out here
22:34:38: out there


Подробнее здесь: https://stackoverflow.com/questions/791 ... ent-future
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»