1. 并发
- 并行(parallel): 指在同一时刻,有多条指令在多个处理器上同时执行;借助多核CPU实现。真并行
- 并发(concurrency):指在用以时刻,只有有一条指令执行,但多个进程指令被快速轮换执行,是的在宏观上具有多个进程同时执行的效果,但在微观上并不是同时执行的,只是把时间分成若干段,通过CPU时间片轮转使多个进程快速交替的执行。假并行
- eg:并行是两个队列同时使用两台咖啡机;并发是两个队列交替使用同一台咖啡机。
- 由于并行是物理层面的技术,我们之研究并发。
2. 进程与线程
-
进程并发:
- (1)程序:编译成功的二进制文件,会占用磁盘空间。
- (N)进程:运行起来程序,占用系统资源;由程序产生;
- 用户内存存储在堆上。
-
进程状态:有5种,创建态,就绪态(登台CPU分配时间片),运行态(占用CPU),阻塞态(等待除CPU外的其它资源主动放弃CPU)与终止态。
- LWP:轻量级进程->lower weight processer;
- Windows下可以忽略进程的概念,只谈线程,因为线程是最小的执行单位,是被系统独立调度和分派的单位。而进程只是给线程提供执行环境。
- 线程是最小执行单位;进程是最小资源分配单位。
- 进程同步:协同步调,规划先后顺序。在一个线程发出某一功能调用时,在没有得到结果之前,该调用不返回。同时其它线程为保证数据一致性,不能调用该功能。
- 同步的目的是,是为了避免数据混乱,解决时间有关的错误。
- 线程同步机制:
- 互斥锁mutex:建议锁,拿到锁之后,才能访问数据,没有拿到锁的线程阻塞等待,拿到锁的线程释放锁。
- 读写锁:写独占,读共享。写锁优先级高。