Java并发编程:线程池、数据同步与性能考量
1. 使用线程池提高并发性能
之前的示例多使用单线程执行器,虽有一定价值,但在“并发”场景下作用有限。 Executors
类提供了三个新的工厂方法,用于创建线程池,而非单线程执行器。线程池是一组预先实例化的可重用线程,可执行任意任务。以下是相关方法:
| 方法名 | 返回类型 | 描述 |
| — | — | — |
| newSingleThreadExecutor()
| ExecutorService
| 创建一个单线程执行器,使用一个工作线程在无界队列上操作,结果按提交顺序依次处理。 |
| newSingleThreadScheduledExecutor()
| ScheduledExecutorService
| 创建一个单线程执行器,可安排命令在给定延迟后运行或定期执行。 |
| newCachedThreadPool()
| ExecutorService
| 创建一个线程池,根据需要创建新线程,若有可用的先前构造的线程则重用。 |
| newFixedThreadPool(int nThreads)
| ExecutorService
| 创建一个线程池,重用固定数量的线程,在共享无界队列上操作。 |
| newScheduledThreadPool(int nThreads)
|