构建并发应用程序
任务执行
应用程序内部的任务调度,存在多种可能的调度策略,这些策略可以不通程度发挥出潜在的并发性,其中最简单的策略就是单一的线程中顺序执行任务
无限制创建线程的缺点:
- 线程生命周期的开销:创建线程和销毁线程都会消耗大量的计算资源
- 资源消耗量:活动线程会消耗内存资源,如果可运行线程多于可用的处理器数,线程就会空闲,大量空闲线程占用更多的内存,给垃圾回收器带来压力,而且竞争资源时,还会产生其他的性能开销
-
稳定性。应该限制可创建线程的数目,在一定范围内,增加线程可以提高系统吞吐量,但超过这个范围,就会让程序瞬间崩溃
Executor接口
提供异步任务执行,为Runnable描述任务提供通用的方式
有界队列防止程序过载而耗尽内存