采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
老师您好,课程中提到,如果线程池中运行的线程数量大于核心线程数,那么没有新任务的话,会等待一段时间再关闭多余的线程,那么,如果线程池中运行的线程数量小于核心线程数,且没有新任务,那么,这些线程会不会关闭?
你好,关于这个参数的理解,举个例子来说吧。比如说线程池中最大的线程数为50,而其中只有40个线程任务在跑,相当于有10个空闲线程,这10个空闲线程不能让他一直在开着,因为线程的存在也会特别耗资源的,所有就需要设置一个这个空闲线程的存活时间。但是需要注意,keepAliveTime和maximumPoolSize及BlockingQueue的类型均有关系。如果BlockingQueue是无界的,那么永远不会触发maximumPoolSize,自然keepAliveTime也就没有了意义。反之,如果核心数较小,有界BlockingQueue数值又较小,同时keepAliveTime又设的很小,如果任务频繁,那么系统就会频繁的申请回收线程。
老师您好,我的意思是,如果线程池中最大线程数为50,核心线程数为30,这时候,有20个线程在跑,5个线程空闲,那么这5个空闲的线程,会什么时候关闭,根据keepAliveTime的时间来吗
我感觉你没仔细看完我的回复,你再看看最后一部分
登录后可查看更多问答,登录/注册
构建完整并发与高并发知识体系,倍增高薪面试成功率!
1.7k 1
1.1k 18
1.1k 15
3.5k 12
1.2k 12