2011-06-12 49 views

回答

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

,或者如果你想传递参数,

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

我正在使用方法2将一个参数传递给线程,并且在*必须是序列之后得到错误:参数,而不是它。你知道这是什么意思吗? – lemiant 2011-06-12 00:17:44

+4

确保你通过'(firstarg,)'而不是'(firstarg)' - 记住单元组元组需要将尾部逗号解释为元组。 – Amber 2011-06-12 00:29:20

+0

可调用方法签名的外观如何?如果我使用类似'callable(** kwargs):'我得到'TypeError:callable()需要0位置参数,但1给出',如果我使用'callable(kwargs):'我得到'TypeError:callable )有一个意想不到的关键字参数'raw''。 – henrikstroem 2015-02-19 10:37:38

3

不幸的是,不是直接等同,因为Python 3意思是比Python 2更便携和_thread接口被视为太为此目的的低级别。

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

相关问题