如何在python中一个接一个地运行两个进程

2024-04-24 21:59:37 发布

您现在位置:Python中文网/ 问答频道 /正文

我试着运行两个命令,一个接一个。我的代码看起来像:

baking.bake()
print "baking completed"

我的目标是运行baking.bake()(大约需要1分钟才能完成),然后立即想要打印“baking started”。最后,当烘焙完成后,我要打印“烘焙完毕”。本质上:如何异步运行bake()?在

这是我的背衬.py文件

^{pr2}$

Tags: 文件代码py命令目标printstartedbake
2条回答

您可以使用multiprocessing module,如下所示:

from multiprocessing import Pool
import time

def something(i):
    time.sleep(2)
    return i+i

pool = Pool(processes=1)
res = pool.apply_async(something, [2])
print "Started something, waiting..."
# ...
print "Done with something. Result was: %s" % (res.get())

所以在你的场景中,我们可以做一些类似的事情:

^{pr2}$

实际上,您将使用threading模块及其join方法:

import threading    

def print_hello():
    for _ in range(3):
        print 'Hello'

hello_thread = threading.Thread(target=print_hello)
hello_thread.start()
hello_thread.join()

print "We're done!"

此代码将打印:

Hello

Hello

Hello

We're done!

所以在你的例子中,你可以创建一个线程:

^{pr2}$

然后简单地start线程和join。在

相关问题 更多 >