因此,我的目标是让do_something()函数启动自己的线程,以便do_something()可以并行运行,而不必等待上一个线程完成。问题在于,它似乎不是多线程的(意味着一个线程在另一个线程开始之前就完成了)。
do_something()
for i in range(len(array_of_letters)): if i == "a": t = threading.Thread(target=do_something()) print "new thread started : %s"%(str(threading.current_thread().ident)) t.start()
我也有current_thread().ident该do_something()函数的内部,但似乎启动的线程的标识与从其运行python脚本的主线程相同。我认为我的方法不正确。
current_thread().ident
这是常见错误,容易出错。
target=do_something()只需在主线程中一次执行您的函数,然后将None(我想为您函数的返回值)作为target函数传递给线程,这不会触发任何可见错误;但也什么也不做。
target=do_something()
None
target
您必须传递实际函数而不是结果:
t = threading.Thread(target=do_something)
会更好地工作