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

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

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

    现在的情况是这样的:

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

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

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

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

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

    4 条回复    2015-03-08 20:37:23 +08:00
    googlebot
        1
    googlebot  
       2015-03-08 13:59:52 +08:00
    gevent?
    monnand
        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/)。细节就参考链接里的内容吧,我就不罗嗦了。
    dingyaguang117
        3
    dingyaguang117  
       2015-03-08 14:26:51 +08:00   ❤️ 1
    GeekGao
        4
    GeekGao  
       2015-03-08 20:37:23 +08:00
    gevent
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1748 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 16:48 · PVG 00:48 · LAX 08:48 · JFK 11:48
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.