gpt4 book ai didi

python脚本在没有线程的情况下并发执行

转载 作者:太空宇宙 更新时间:2023-11-03 17:02:42 25 4
gpt4 key购买 nike

如何使用不同的 PID 多次同时执行单个 python 脚本,而不使用另一个 python 脚本中的线程和多重处理?

我需要从每次执行中获取结果

我尝试了多处理模块简单程序,我得到了 AttributeError: 'module' object has no attribute 'f' 并且它需要在 Linux 和 Windows 上工作。上一篇文章的解决方案对我不起作用

在与之前的帖子核实后,我再次发布了此内容。

最佳答案

不同的 PID 意味着您需要不同的进程。不使用multiprocessing,您可以使用subprocess模块启动另一个进程,并通过stdout获取结果:

#!/usr/bin/env python
# coding: utf8
from __future__ import absolute_import, division, print_function
import pickle
import sys
from subprocess import PIPE, Popen


def main():
processes = [
Popen([sys.executable, 'test.py'], stdout=PIPE)
for _ in xrange(5)
]
results = [pickle.loads(p.stdout.read()) for p in processes]
for process in processes:
process.wait()
print(results)


if __name__ == '__main__':
main()

test.py 需要将 pickle 序列化的结果写入其 stdout

关于python脚本在没有线程的情况下并发执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34899532/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com