小编典典

同时运行多个线程

python

因此,我的目标是让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().identdo_something()函数的内部,但似乎启动的线程的标识与从其运行python脚本的主线程相同。我认为我的方法不正确。


阅读 241

收藏
2021-01-20

共1个答案

小编典典

这是常见错误,容易出错。

target=do_something()只需在主线程中一次执行您的函数,然后将None(我想为您函数的返回值)作为target函数传递给线程,这不会触发任何可见错误;但也什么也不做。

您必须传递实际函数而不是结果:

t = threading.Thread(target=do_something)

会更好地工作

2021-01-20