Подтвердить что ты не робот

Что случилось с thread.start_new_thread в python 3

Мне понравилась возможность превратить функцию в поток без ненужной строки для определения класса. Я знаю об _thread, однако кажется, что вы не должны использовать _thread. Существует ли хороший эквивалент thread.start_new_thread для python 3?

4b9b3361

Ответ 1

threading.Thread(target=some_callable_function).start()

или если вы хотите передать аргументы,

threading.Thread(target=some_callable_function,
        args=(tuple, of, args),
        kwargs={'dict': 'of', 'keyword': 'args'},
    ).start()

Ответ 2

К сожалению, нет прямого эквивалента, поскольку Python 3 должен быть более переносимым, чем Python 2, а интерфейс _thread рассматривается как слишком низкоуровневый для этой цели.

В Python 3 лучше всего использовать threading.Thread(target=f...). Это использует другую семантику, но предпочтительнее, потому что интерфейс проще переносить на другие реализации Python.