1
Helsing 214 天前 via iPhone
看源码吧,其实并没有核心线程和非核心线程的区分,你设置了几个核心线程,线程池就在已经创建的线程中,保留几个线程不销毁,就这么简单。
核心线程和非核心线程就是一种线程。 |
2
lingalonely 214 天前
不存在指定的核心线程,只要保持线程池的线程数到指定数量就行,其他多余的拿出来回收掉
|
3
trzzzz OP 谢谢
|
4
sujin190 214 天前 via Android
最小线程数吧,你哪看的核心非核心?超过最小线程数的线程在超过空闲时间后销毁吧
|
6
Euthpic 214 天前 via Android
让你来设计的话,你会关心一个线程是核心的还是非核心的吗?只需关心池内的线程数量就行。核心线程数,最大线程数,其实也就是这个池子的下界和上界而已
|
9
trzzzz OP @sujin190 我之前说的有点问题。看了一些博客和楼中其他人回答,所谓的核心线程数也就是线程池的最小线程数。druid 配置有最小最大连接数我想也和线程池的差不多
|
10
wzcloud 214 天前
源码没有区分核心非核心,只是在执行方法时会传递一个 bool 值类型的参数,如果为 true,则调用队列的阻塞方法,否则调用超时等待方法(如果超时没获取到数据,则线程结束--相当于关闭了非核心线程)
|
11
Ericcccccccc 214 天前
这就好像假设你需要身上保留 10 块钱, 你先有了 10 块后来又获得 10 块, 这下需要把 10 块花出去难道还要区分先获得的 10 块还是后获得的 10 块吗?
|
12
Belmode 213 天前 via Android
corePoolSize 应该理解成“最少存活线程数”吧
|
13
ikas 213 天前
需要配合 allowsCoreThreadTimeOut 参数
如果设置 false,那么 core 线程就是最开始的生成的那几个线程 |
15
ikas 213 天前
设置 core size 为 0?
|