【问题标题】:what libuv threadpool threads will do when they are not in use?libuv 线程池线程在不使用时会做什么?
【发布时间】:2016-11-25 11:52:22
【问题描述】:

据我了解,libuv 线程池的默认大小是 4,它可以扩展到 128。我的问题是如果线程分配为默认大小,其他线程(124)会做什么?它会睡觉吗?或参与其他一些事件处理任务?

【问题讨论】:

    标签: node.js events libuv


    【解决方案1】:

    当池大小为 4 时,实际上只启动了 4 个 I/O 线程,而不是 128(其中只会使用 4 个)。

    数字 128 是池允许的最大大小,但 libuv 必须在启动时知道它需要分配多少线程(并且这个数字可以,AFAIK,在进程的生命周期内不会改变)。

    【讨论】:

      【解决方案2】:

      线程池的线程都是在第一次使用线程池时启动的。未使用的线程将处于休眠状态,等待条件变量将它们唤醒。

      目前无法在运行时更改池中的线程数。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-05-03
        • 1970-01-01
        • 1970-01-01
        • 2011-01-03
        • 2015-12-12
        • 2015-02-13
        相关资源
        最近更新 更多