线程池
1.默认线程池
1 | package com.yishan.pooltest; |
2.指定上限的线程池
1 | package com.yishan.pooltest; |
自定义线程池
- 优先调用核心线程,在阻塞队列达到最大值后,调用临时线程
1 | package com.yishan.pooltest; |
任务拒绝策略
- 1.new ThreadPoolExecutor.AbortPolicy() 丢弃任务并抛出RejectedExecutionException异常,这是默认的策略
- 2.new ThreadPoolExecutor.DiscardPolicy() 直接丢弃任务,不抛出异常,不推荐此做法
- 3.new ThreadPoolExecutor.DiscardOldestPolicy() 直接抛弃队列中等待最久的任务,然后将当前任务加入到队列中
- 4.new ThreadPoolExecutor.CallerRunsPolicy() 调用其他线程进行执行