作品分享
问答交流
发现
任务
客服工单
想要具体相识各个 BlockingQueue 的读者,可以参考我的前面的一篇对 BlockingQueue 的各个实现类举行具体分析的文章。 https://www.jianshu.com/p/4f66833cc432
必要获取结果(FutureTask),用 submit 方法,不必要获取结果,可以用 execute 方法。
invokeAny 和 invokeAll 方法占了这整个类的绝大多数篇幅,读者可以选择适当跳过,由于它们大概在你的实践中利用的频次比力低,而且它们不带有承前启后的作用,不消担心会遗漏什么导致看不懂反面的代码。
核心线程数,不要抠字眼,反正先记着有这么个属性就可以了。
最大线程数,线程池答应创建的最大线程数。
任务队列,BlockingQueue 接口的某个实现(常利用 ArrayBlockingQueue 和 LinkedBlockingQueue)。
空闲线程的保活时间,假如某线程的空闲时间凌驾这个值都没有任务给它做,那么可以被关闭了。注意这个值并不会对全部线程起作用,假如线程池中的线程数少于便是核心线程数 corePoolSize,那么这些线程不会由于空闲太长时间而被关闭,固然,也可以通过调用 allowCoreThreadTimeOut(true)使核心线程数内的线程也可以被接纳。
用于天生线程,一样平常我们可以用默认的就可以了。通常,我们可以通过它将我们的线程的名字设置得比力可读一些,如 Message-Thread-1, Message-Thread-2 雷同如许。
当线程池已经满了,但是又有新的任务提交的时间,该接纳什么计谋由这个来指定。有几种方式可供选择,像抛出非常、直接拒绝然后返回等,也可以本身实现相应的接口实现本身的逻辑,这个之后再说。
举报
本版积分规则 回帖后跳转到最后一页
Powered by CangBaoKu v1.0 小黑屋藏宝库It社区( 冀ICP备14008649号 )
GMT+8, 2025-9-5 11:25, Processed in 0.100984 second(s), 34 queries.© 2003-2025 cbk Team.