python 3中的thread.start_new_thread发生了什么

时间:2011-06-12 00:00:42

标签: python multithreading python-3.x python-multithreading

我喜欢将函数转换为线程而没有不必要的行来定义类的能力。我知道_thread,但看起来你不应该使用_thread。对于python 3,是否有一个类似于thread.start_new_thread的良好实践?

2 个答案:

答案 0 :(得分:30)

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

或者如果你想传递参数,

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

答案 1 :(得分:4)

不幸的是,没有一个直接的等价物,因为Python 3比Python 2更易于移植,_thread接口被视为太低级别。

在Python 3中,最佳做法通常是使用threading.Thread(target=f...)。这使用不同的语义,但是首选,因为接口更容易移植到其他Python实现。