线程池那个题目没看懂,核心线程能够一直存活的原因就是因为take方法啊,在runWorker方法里面while循环条件:task != null || (task = getTask()) != null,getTask方法里边会进行判断,如果设置allowCoreThreadTimeOut为true(默认是false),会调用阻塞队列的poll方法,方法有时间参数可以设置超时时间,超过了就会返回null;如果是false,则会调用阻塞队列的take方法,无限期等待不会超时,核心线程执行到这就会挂起无限等待
2 1

相关推荐

牛客网
牛客企业服务