【发布时间】:2016-11-25 11:52:22
【问题描述】:
据我了解,libuv 线程池的默认大小是 4,它可以扩展到 128。我的问题是如果线程分配为默认大小,其他线程(124)会做什么?它会睡觉吗?或参与其他一些事件处理任务?
【问题讨论】:
据我了解,libuv 线程池的默认大小是 4,它可以扩展到 128。我的问题是如果线程分配为默认大小,其他线程(124)会做什么?它会睡觉吗?或参与其他一些事件处理任务?
【问题讨论】:
当池大小为 4 时,实际上只启动了 4 个 I/O 线程,而不是 128(其中只会使用 4 个)。
数字 128 是池允许的最大大小,但 libuv 必须在启动时知道它需要分配多少线程(并且这个数字可以,AFAIK,在进程的生命周期内不会改变)。
【讨论】:
线程池的线程都是在第一次使用线程池时启动的。未使用的线程将处于休眠状态,等待条件变量将它们唤醒。
目前无法在运行时更改池中的线程数。
【讨论】: