libuv threadpool线程在不使用时会做什么?

时间:2016-11-25 11:52:22

标签: node.js events libuv

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

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

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

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