gpt4 book ai didi

python 线程/叉?

转载 作者:太空狗 更新时间:2023-10-30 02:35:34 25 4
gpt4 key购买 nike

我正在制作一个需要同时做 3 件事的 python 脚本。什么是实现此目的的好方法,就像我听说的关于 GIL 的方法一样,我不再那么倾向于使用线程了。
脚本需要做的两件事将非常活跃,他们将有很多工作要做,然后我需要第三件事在用户询问时通过套接字向用户报告(所以它就像一个很小的服务器)关于其他 2 个进程的状态。
现在我的问题是什么是实现这一目标的好方法?我不想拥有三个不同的脚本,而且由于 GIL 使用线程,我认为我不会获得太多性能,而且我会让事情变得更糟。
是否有像 C 中那样的用于 python 的 fork() 所以从我的脚本中 fork 2 个进程将完成他们的工作并从主进程向用户报告?我如何从 fork 进程与主进程进行通信?

LE::更准确地说,1 个线程应该从 imap 服务器获取电子邮件并将它们存储到数据库中,另一个线程应该从 db 获取需要发送的消息,然后发送它们,然后主线程应该是一个微型 http 服务器,它只接受一个 url,并以 json 格式显示这两个线程的状态。那么线程可以吗?这些工作会同时完成还是由于 gil 会出现性能问题?

最佳答案

我想你可以使用 multiprocessing具有类似于线程包的 API 的包,可让您在单个 CPU 上使用多个内核获得更好的性能。

要查看使用多处理而不是线程的性能增益,请查看 this link关于使用多处理 x 线程的同一程序的平均时间比较。

关于 python 线程/叉?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2123269/

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