[英]Running multiple threads at the same time
因此,我的目标是让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()
我在do_something()
函数内部也有一个current_thread().ident
,但似乎启动的线程的标识与从其运行python脚本的主线程相同。 我认为我的方法不正确。
这是常见的,容易出错。
target=do_something()
仅在主线程中一次执行您的函数,然后将None
(我想是您函数的返回值)作为target
函数传递给线程,这不会触发任何可见错误; 但也什么也不做。
您必须传递实际函数而不是结果:
t = threading.Thread(target=do_something)
会更好地工作
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.