目录介绍
- 01.实际开发问题
- 02.线程池的优势
- 03.ThreadPoolExecutor参数
- 04.ThreadPoolExecutor使用
- 05.线程池执行流程
- 06.四种线程池类
- 07.execute和submit区别
- 08.线程池的使用技巧
01.实际开发问题
- 在我们的开发中经常会使用到多线程。例如在Android中,由于主线程的诸多限制,像网络请求等一些耗时的操作我们必须在子线程中运行。
- 我们往往会通过new Thread来开启一个子线程,待子线程操作完成以后通过Handler切换到主线程中运行。这么以来我们无法管理我们所创建的子线程,并且无限制的创建子线程,它们相互之间竞争,很有可能由于占用过多资源而导致死机或者OOM。所以在Java中为我们提供了线程池来管理我们所创建的线程。
02.线程池的优势
- ①降低系统资源消耗,通过重用已存在的线程,降低线程创建和销毁造成的消耗;
- ②提高系统响应速度,当有任务到达时,无需等待新线程的创建便能立即执行;
- ③方便线程并发数的管控,线程若是无限制的创建,不仅会额外消耗大量系统资源,更是占用过多资源而阻塞系统或oom等状况,从而降低系统的稳定性。线程池能有效管控线程,统一分配、调优,提供资源使用率;
- ④更强大的功能,线程池提供了定时、定期以及可控线程数等功能的线程池,使用方便简单。