当我使用gevent时,它仍然是同步的,并且运行时间不会减少。
下面是我的脚本:
def fun(i):
p = subprocess.Popen(['./main', 'data.txt'], stdout=PIPE, stderr=PIPE)
err = p.communicate()[1]
p.wait()
def synchronous():
for i in range(1,10):
fun(i)
def asynchronous():
threads = [gevent.spawn(fun, i) for i in xrange(10)]
gevent.joinall(threads)通过比较%timeit synchronous()和%timeit asynchronous(),几乎没有什么变化。'main‘是编译后的c++文件,'data.txt’是'main‘的输入文件。
我想问题是我使用子进程来调用外部例程,但我不知道如何解决这个问题。
发布于 2018-03-08 07:22:13
p.wait()
这就是让你的代码同步。
https://stackoverflow.com/questions/39636180
复制相似问题