为什么会有并发、并发的问题

1.为什么是并发

计算机世界的快速发展离不开 CPU、内存和 I/O 设备的高速发展,但是这三者一直存在速度差异性问题,我们可以从存储器的层次结构可以看出

 

 

 

CPU 内部是寄存器的构造,寄存器的访问速度要高于高速缓存,高速缓存的访问速度要高于内存,最慢的是磁盘访问。程序整体的性能取决于最慢的操作也就是磁盘访问速度。

因为 CPU 速度太快了,所以为了发挥 CPU 的速度优势,平衡这三者的速度差异,计算机体系机构、操作系统、编译程序都做出了贡献,主要体现为:

  • CPU 使用缓存来中和和内存的访问速度差异
  • 操作系统提供进程和线程调度,让 CPU 在执行指令的同时分时复用线程,让内存和磁盘不断交互,不同的 CPU 时间片 能够执行不同的任务,从而均衡这三者的差异
  • 编译程序提供优化指令的执行顺序,让缓存能够合理的使用

 

2.并发的问题

https://zhuanlan.zhihu.com/p/197727299

  • 更新丢失(也称为原子性问题)
  • 降低性能,线程切换
  • 可见性问题(多核CPU时代,多线程线程操作的是不同的 CPU 缓存,互相的缓存不可见)
    •   

       

       

  • 死锁

 

posted @ 2020-09-05 21:34  king断雨  阅读(732)  评论(0)    收藏  举报