2011-12-08 44 views
-1

好的。也许你因为没有展示我尝试过的东西而生气。但我真的很困惑线程。同时运行三个线程并在全部运行完第四个线程后,最简单的方法是什么?这将运行在一个wx应用程序中,所以我想要一种不会锁定我的程序的方式。Simultaneus threads

编辑:嗯,第四不需要是一个线程,但它是需要在所有关闭线程都完成

回答

5

我没有测试这个要运行的方法,但基本想法是这样的:

from threading import Thread 

threads = [Thread(target=f1), Thread(target=f2), Thread(target=f3)] 

for thread in threads: 
    thread.start() 

# Wait for all of them 
for thread in threads: 
    thread.join() 

# Do stuff afterwards 

注意线程不能并行做计算,因为GIL的,所以你可能需要使用多。但是,如果他们正在等待数据库或网络服务,它们将按照您的预期工作。

+0

这真的是我见过的最好的样品。他们中的大多数都过于复杂,你真的得到了我在我的问题中所要求的。 –

+0

@NiclasNilsson:很高兴帮助! –