Python库中的协同程序是否始终是单线程的?

时间:2016-04-03 03:45:50

标签: python multithreading concurrency greenlets

来自gevent文档:

  

greenlets全部在相同的OS线程中运行,并且是合作安排的。

来自asyncio文档:

  

此模块提供了使用协同程序编写单线程并发代码的基础结构。 asyncio确实提供了

尽我所能,我没有遇到任何实现多线程或多进程协同程序的主要Python库,即跨多个线程传播协同程序,以便增加可以进行的I / O连接的数量。

我理解协同程序本质上允许主线程暂停执行这一个I / O绑定任务并继续执行下一个I / O绑定任务,仅在其中一个I / O操作完成并需要处理时强制执行中断。如果是这种情况,那么在多个线程上分配I / O任务,每个线程可以在不同的内核上运行,这显然会增加您可以提出的请求数量。

也许我误解了协同程序的工作方式或工作方式,所以我的问题分为两部分:

  1. 甚至可以在多个线程(可能在不同的核心上)或多个进程上运行一个协同程序库?

  2. 如果是这样, 有这样的图书馆吗?

0 个答案:

没有答案