根据我的理解,libuv threadpool的默认大小是4,它可以扩展到128.我的问题是,如果线程被分配为默认大小,其他线程(124)将做什么?它会睡觉吗?或参与其他一些事件处理任务?
答案 0 :(得分:0)
当池大小为4时,实际上只启动了4个I / O线程,而不是128个(其中只有4个将被使用)。
数字128是允许的最大池大小,但libuv必须在启动时知道需要分配多少线程(并且该数字可以,AFAIK,在进程的生命周期内不会更改)。 p>
答案 1 :(得分:0)
线程池的线程都是在第一次使用线程池时启动的。未使用的线程将处于休眠状态,等待条件变量将其唤醒。
此时无法在运行时更改池中的线程数。