创建线程的方式? 线程池工作原理 ?线程池拒绝策略?
时间: 2023-11-12 12:42:48 浏览: 94
Java多线程之进阶篇(一).docx
1. 创建线程的方式有三种,分别为继承Thread类、实现Runnable接口和使用线程池。
2. 线程池工作原理:线程池是一种预先创建一定数量的线程,并将它们保存在一个线程池中,等待分配任务并执行。线程池通过控制线程的数量和重复利用已创建的线程来优化系统性能和资源消耗。当一个任务到达线程池时,线程池中的一个线程会被分配给这个任务进行处理。当这个任务完成之后,该线程不会被销毁,而是继续等待执行下一个任务。这样,线程池就可以避免频繁地创建和销毁线程,从而提高系统的性能。
3. 线程池拒绝策略:当线程池中的线程数量达到设定的最大值,并且任务队列中的任务也已满时,新来的任务就会被拒绝执行。此时,线程池需要采取一些拒绝策略来处理这些任务。常见的拒绝策略有以下几种:
- AbortPolicy:默认的拒绝策略,直接抛出RejectedExecutionException异常。
- CallerRunsPolicy:在当前线程中执行任务。这样做的好处是可以避免任务的丢失,但是会影响当前线程的性能。
- DiscardPolicy:直接丢弃任务,不做任何处理。
- DiscardOldestPolicy:丢弃队列中最早的任务,然后尝试重新提交新的任务。
阅读全文