Python 多处理线程 Asyncio

Posted

技术标签:

【中文标题】Python 多处理线程 Asyncio【英文标题】:Python Multiproceesing Threading Asyncio 【发布时间】:2018-02-20 06:37:32 【问题描述】:

我正在编写一个程序,我需要同时运行两个以上的进程,并且它们共享很少的数据。在尝试这样做时,我研究了线程、多处理、异步。由于GIL,线程一次只能运行一个线程,多处理不快速共享数据,asyncio在这里没有用现在我在这三个之间很混乱。如何同时运行2个以上的进程?

【问题讨论】:

您希望处理的数据的结构是什么?这将影响您执行此操作的方式。 @***.com/users/750670/polarise 一些整数 您可以参考pymotw.com/2/multiprocessing/communication.html,他们使用队列和一种称为“毒丸”的方法。我强烈推荐这个。 【参考方案1】:

您最好的选择可能是多处理模块。 --> Process-based parallelism

本质上,要创建一个多进程程序,该模块只需启动一个新的 python 进程,其中包含您在另一个内核上分配给它的任何功能。过去,我有过受 CPU 限制的程序,这些程序受益于并行处理具有类似功能的大量数据,这是我发现最多用例的地方。在其他情况下,我知道我受 CPU 限制并且运行时间很重要,良好的程序组合通常是更好、更容易的解决方案。

【讨论】:

以上是关于Python 多处理线程 Asyncio的主要内容,如果未能解决你的问题,请参考以下文章

Python 中的多线程还是串行处理?

Python 线程处理 - join() - 多线程

Python 多处理线程 Asyncio

python循环怎么用多线程去运行

Python多线程总结

python多线程