首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
宝塔
V2EX  ›  问与答

有没有 线程池 + 生产者、消费者的 Python 模块?

  •  
  •   invite · 2015-03-08 13:00:06 +08:00 · 2076 次点击
    这是一个创建于 1713 天前的主题,其中的信息可能已经有所发展或是发生改变。

    现在的情况是这样的:

    做完一件事情,有两个步骤, A 和 B, B 需要在 A 完成后才能执行。

    目前步骤A消耗系统资源较少,所以希望有 X 大小的线程池。

    而步骤B消耗系统资源较多,因此只有 Y 大小的线程池。

    而类似的事情有很多件,目前只用线程池的时候, 需要等到所有的步骤A结束才能做B步骤。

    有没有现成的线程池 + 生产者、消费者结合起来的模块?来满足不同步骤使用不同大小的线程池?

    4 回复  |  直到 2015-03-08 20:37:23 +08:00
        1
    googlebot   2015-03-08 13:59:52 +08:00
    gevent?
        2
    monnand   2015-03-08 14:06:31 +08:00
    不知道你用的是哪个python解释器/虚拟机,如果是CPython,那么使用线程之前,最好考虑一下[GIL](https://wiki.python.org/moin/GlobalInterpreterLock)的问题。

    至于你的问题,可以考虑[asyncio](https://docs.python.org/3/library/asyncio-task.html)。另外,也可以考虑[stackless python](http://www.stackless.com/)。细节就参考链接里的内容吧,我就不罗嗦了。
        3
    dingyaguang117   2015-03-08 14:26:51 +08:00   ♥ 1
        4
    GeekGao   2015-03-08 20:37:23 +08:00
    gevent
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   835 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 24ms · UTC 20:47 · PVG 04:47 · LAX 12:47 · JFK 15:47
    ♥ Do have faith in what you're doing.