1、前言
之前被人问懵了,其实原理很简单:
- 任务被提交到线程池时,如果线程数小于 corePoolSize,先创建线程执行任务;当线程数等于 corePoolSize 时,放入到阻塞队列供线程拉取任务;当阻塞队列慢时,会创建最大线程数执行,否则就使用拒绝策略。
- 拒绝策略分为4种:拒绝并抛异常、拒绝不抛异常、抛弃队首并将任务放进去、让调用者执行
- 线程池调用 shutdown() 方法会继续运行,直到队列里的任务执行完毕。如果想立即结束,用 shutdownNow()
之前被人问懵了,其实原理很简单:
- 任务被提交到线程池时,如果线程数小于 corePoolSize,先创建线程执行任务;当线程数等于 corePoolSize 时,放入到阻塞队列供线程拉取任务;当阻塞队列慢时,会创建最大线程数执行,否则就使用拒绝策略。
- 拒绝策略分为4种:拒绝并抛异常、拒绝不抛异常、抛弃队首并将任务放进去、让调用者执行
- 线程池调用 shutdown() 方法会继续运行,直到队列里的任务执行完毕。如果想立即结束,用 shutdownNow()
本文标题:JUC线程池(7):线程池总结
本文链接:https://www.haomeiwen.com/subject/ckfhertx.html
网友评论