并发编程 基础认知
并发、并行、同步、线程安全
并发:并发的关键是你有处理多个任务的能力 不一定要同时
并行:并行的关键是你有同时处理多个任务的能力
同步:通过控制和调度 来保证多线程中共享资源的数据一致性
线程安全:用来描绘一段代码 指在并发的情况之下 该代码经过多线程使用 线程的调度顺序不影响任何结果
就是指一段代码在处理多个任务的过程中 不会因为多个任务而影响最终的结果
线程状态
线程池
定义:
线程池 其实就是一种基于池化思想
的管理线程的工具
线程池 维护多个线程 等待监督管理者分配可并发执行的任务
- 避免了处理任务时创建销毁线程开销的代价
- 避免了线程数量膨胀导致的过分调度问题 保证了对内核的充分利用
好处:
降低资源消耗
:通过池化技术重复利用已创建的线程,降低线程创建和销毁造成的损耗。提高响应速度
:任务到达时,无需等待线程创建即可立即执行。提高线程的可管理性
:线程是稀缺资源,如果无限制创建,不仅会消耗系统资源,还会因为线程的不合理分布导致资源调度失衡,降低系统的稳定性。使用线程池可以进行统一的分配、调优和监控。提供更多更强大的功能
:线程池具备可拓展性,允许开发人员向其中增加更多的功能。比如延时定时线程池ScheduledThreadPoolExecutor,就允许任务延期执行或定期执行。