来自gevent
文档:
greenlets全部在相同的OS线程中运行,并且是合作安排的。
来自asyncio
文档:
此模块提供了使用协同程序编写单线程并发代码的基础结构。
asyncio
确实提供了
尽我所能,我没有遇到任何实现多线程或多进程协同程序的主要Python库,即跨多个线程传播协同程序,以便增加可以进行的I / O连接的数量。
我理解协同程序本质上允许主线程暂停执行这一个I / O绑定任务并继续执行下一个I / O绑定任务,仅在其中一个I / O操作完成并需要处理时强制执行中断。如果是这种情况,那么在多个线程上分配I / O任务,每个线程可以在不同的内核上运行,这显然会增加您可以提出的请求数量。
也许我误解了协同程序的工作方式或工作方式,所以我的问题分为两部分:
甚至可以在多个线程(可能在不同的核心上)或多个进程上运行一个协同程序库?
如果是这样, 有这样的图书馆吗?