繁体   English   中英

同时运行多个线程

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM