gpt4 book ai didi

Python 多处理问题

转载 作者:行者123 更新时间:2023-11-28 22:05:53 25 4
gpt4 key购买 nike

我的程序分为核心和下载器两部分。核心处理所有应用程序逻辑,而下载器只下载 url。现在,我正在尝试使用python multiprocessing 模块来完成核心作为进程和下载器作为进程的任务。

我注意到的第一个问题是,如果我从核心进程中生成下载程序,这样下载程序就是子进程,而核心进程就是父进程,那么核心进程(父进程)将被阻塞,直到子进程完成。我不想要这种行为。我想要一个核心进程和一个下载程序进程,它们都能够执行它们的代码并相互通信。

例子

...
def main():
jobQueue = Queue()
jobQueue.put("http://google.com)
d = Downloader(jobQueue)
p = Process(target=d.start())
p.start()

if __name__ == '__main__':
freeze_support()
main()

Downloader 的 start() 只是从队列中取出 url 并下载它。

为了让这 2 个进程畅通无阻,我是否需要从父进程创建 2 个进程,然后在它们之间共享一些东西?

最佳答案

p = Process(target=d.start()) 行中,您正在调用 d.start()。删除括号,如下所示:

...
def main():
jobQueue = Queue()
jobQueue.put("http://google.com")
d = Downloader(jobQueue)
p = Process(target=d.start)
p.start()

if __name__ == '__main__':
freeze_support()
main()

关于Python 多处理问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4515491/

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