為什么會有並發、並發的問題


1.為什么是並發

計算機世界的快速發展離不開 CPU、內存和 I/O 設備的高速發展,但是這三者一直存在速度差異性問題,我們可以從存儲器的層次結構可以看出

 

 

 

CPU 內部是寄存器的構造,寄存器的訪問速度要高於高速緩存,高速緩存的訪問速度要高於內存,最慢的是磁盤訪問。程序整體的性能取決於最慢的操作也就是磁盤訪問速度。

因為 CPU 速度太快了,所以為了發揮 CPU 的速度優勢,平衡這三者的速度差異,計算機體系機構、操作系統、編譯程序都做出了貢獻,主要體現為:

  • CPU 使用緩存來中和和內存的訪問速度差異
  • 操作系統提供進程和線程調度,讓 CPU 在執行指令的同時分時復用線程,讓內存和磁盤不斷交互,不同的 CPU 時間片 能夠執行不同的任務,從而均衡這三者的差異
  • 編譯程序提供優化指令的執行順序,讓緩存能夠合理的使用

 

2.並發的問題

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

  • 更新丟失(也稱為原子性問題)
  • 降低性能,線程切換
  • 可見性問題(多核CPU時代,多線程線程操作的是不同的 CPU 緩存,互相的緩存不可見)
    •   

       

       

  • 死鎖

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM