编程语言
首页 > 编程语言> > python threading / fork?

python threading / fork?

作者:互联网

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

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

解决方法:

我认为您可以使用具有类似于线程包的API的multiprocessing软件包,并允许您在单个CPU上使用多个内核获得更好的性能.

要使用多处理代替线程查看性能增益,请在this link上查看使用多处理x线程的同一程序的平均时间比较.

标签:python,multithreading,multiprocess
来源: https://codeday.me/bug/20190607/1191741.html