【发布时间】:2023-03-19 19:02:01
【问题描述】:
我正在制作一个需要同时做 3 件事的 Python 脚本。
什么是实现这一目标的好方法,就像我听说的关于 GIL 的事情一样,我不再那么倾向于使用线程了。
脚本需要做的两件事将非常活跃,他们将有很多工作要做,然后我需要让第三件事在用户询问时通过套接字向用户报告(所以它就像一个很小的服务器)关于其他 2 个进程的状态。
现在我的问题是什么是实现这一目标的好方法?我不想拥有三个不同的脚本,而且由于 GIL 使用线程,我认为我不会获得太多性能,而且我会让事情变得更糟。
是否有一个 fork() for python like in C so from my script so fork 2 processes that will do their job and from the main process to report to the user?以及如何从分叉进程与主进程进行通信?
LE::更准确地说,1thread 应该从 imap 服务器获取电子邮件并将它们存储到数据库中,另一个线程应该从 db 获取需要发送的消息,然后发送它们和主线程应该是一个小型 http 服务器,它只接受一个 url,并以 json 格式显示这两个线程的状态。那么线程好吗?工作会同时完成还是由于 gil 会出现性能问题?
【问题讨论】:
-
有一个新的和改进的 GIL,所以如果你可以灵活地升级,那么你会没事的。
标签: python multithreading multiprocess