为什么多线程这么重要?
- 摩尔定律失效,CPU主频从2003年不再翻倍;
- 在主频不再提高且核数在不断增加的情况下,要想让程序更快就要用到并行或并发编程。
- 高并发系统:异步+回调
多线程相关概念
- 进程:是程序的⼀次执⾏,是系统进⾏资源分配和调度的独⽴单位,每⼀个进程都有它⾃⼰的内存空间和系统资源
- 线程:在同⼀个进程内⼜可以执⾏多个任务,⽽这每⼀个任务我们就可以看做是⼀个线程;
- 管程:Monitor(监视器),也就是我们平时所说的锁
并发 | 并行
- 并发,指的是多个事情,在同一时间段内同时发生了。
- 并行,指的是多个事情,在同一时间点上同时发生了。并发的多个任务之间是互相抢占资源的。 并发编程的目标是充分的利用处理器的每一个核,以达到最高的处理性能。并行的多个任务之间是不互相抢占资源的、只有在多 CPU 的情况中,才会发生并行。
具体实现
- 在高内聚低耦合的条件下,线程 操作 资源类
- 判断/干活/通知
- 防止虚假唤醒(判断只能用while,不能用if)
- 知识小总结:多线程编程套路+while判断+新版写法
- 标志位