线程池
什么是线程池? 为什么要使用它?
在程序启动的时候就创建若干线程来响应处理,它们被称为线程池,里面的线程叫工作线程(JDK1.5开始提供Excutor)
创建线程要花费昂贵的资源和时间,如果任务来了才创建线程那么响应时间会变长,而且一个进程能创建的线程数有限,所以可以创建线程池,然后往里面提交需要开启的线程即可
线程池中断策略
线程池中的线程容器已经放不下先的任务了,必须要有一个相应的策略来处理
ThreadPoolExecutor内部的4个中断策略
1. Abort
默认策略,中止新加入的任务
2. CallerRuns
调用者运行,它既不会丢弃任务,也不会抛弃异常,它会把任务推回到调用者那里以缓解任务流
3. Discard
默认放弃这个任务
4. DiscardOldest
遗弃最老的的任务