Что случилось с thread.start_new_thread в Python 3 - PullRequest
18 голосов
/ 12 июня 2011

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

Ответы [ 2 ]

30 голосов
/ 12 июня 2011
threading.Thread(target=some_callable_function).start()

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

threading.Thread(target=some_callable_function,
        args=(tuple, of, args),
        kwargs={'dict': 'of', 'keyword': 'args'},
    ).start()
4 голосов
/ 12 июня 2011

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

В Python 3 обычно рекомендуется использовать threading.Thread(target=f...). При этом используется другая семантика, но она предпочтительнее, поскольку интерфейс легче портировать на другие реализации Python.

...