在Python中进行线程化时的AssertionError

时间:2013-03-11 22:36:53

标签: python multithreading

我正在尝试使用以下方法在Python中运行一些简单的线程:

t1 = threading.Thread(analysis("samplequery"))
t1.start()

other code runs in here

t1.join()

不幸的是我收到错误:

  

“AssertionError:group参数现在必须为none”

我以前从未在Python中实现过线程,所以我有点不确定出了什么问题。有谁知道问题是什么?

我不确定它是否相关,但分析是从另一个文件导入的方法。

我也有一个跟进查询。 Analysis返回一个字典,我将如何分配在原始方法中使用?

由于

2 个答案:

答案 0 :(得分:38)

您想要指定target关键字参数:

t1 = threading.Thread(target=analysis("samplequery"))

你可能打算让analysis成为目标,但'samplequery参数在启动时

t1 = threading.Thread(target=analysis, args=("samplequery",))

Thread()的第一个参数是group参数,它目前只接受None作为参数。

来自threading.Thread() documentation

  

应始终使用关键字参数调用此构造函数。参数是:

     
      
  • 群组应为None;在实施ThreadGroup课程时保留用于将来的扩展。
  •   
  • target run()方法调用的可调用对象。默认为None,表示没有任何内容被调用。
  •   

答案 1 :(得分:6)

您需要提供target属性:

t1 = threading.Thread(target = analysis, args = ('samplequery',))