并發(fā)
同時擁有兩個或者多個線程,如果程序在單核處理器上運行,多個線程將交替的換入或者換出內(nèi)存,這些線程是同時存在的卤唉,每個線程都處于執(zhí)行過程中的某個狀態(tài),如果運行在多喝處理器上嘹吨,此時搬味,程序中的每個線程都將分配到一個處理器核上境氢,因此可以同時運行
多個線程操作相同的資源 保證線程安全 合理使用資源
高并發(fā)
是互聯(lián)網(wǎng)系統(tǒng)架構(gòu)設(shè)計中中必須考慮的因素之一蟀拷,它通常是指,通過設(shè)計保證系統(tǒng)能夠同時并行處理很多請求
服務(wù)能同時處理很多請求 提高程序性能
并發(fā)編程的基礎(chǔ)-CPU多級緩存
CPU的頻率太快 萍聊,快到內(nèi)存跟不上问芬,快到主存跟不上,這樣在處理器時鐘周期內(nèi)寿桨,COU常常需要等待主存此衅,浪費資源。所以Cache的出現(xiàn)亭螟,是為了換屆CPU和內(nèi)存之間的速度的不匹配問題(結(jié)構(gòu):CPU->Cache->Memory)
CPU Cache意義:
時間局部性:如果某個數(shù)據(jù)被訪問 那么在不久得將來他很可能被再次訪問
空間局部性:如果某個數(shù)據(jù)被訪問 那么與他相鄰的數(shù)據(jù)模塊他很可能很快被訪問
CPU多級緩存-緩存一致性(MESI):
用于保障多個CPU CAChe之間緩存共享數(shù)據(jù)的一致
CPU多級緩存-亂序執(zhí)行優(yōu)化
處理器為提高運算速度而做出違背原有代碼原則的順序優(yōu)化
并發(fā)的優(yōu)勢
速度:同時處理多個請求挡鞍,響應(yīng)更快;復(fù)雜的請求可以分成多個同時進行
設(shè)計:程序設(shè)計在某些情況下更簡單预烙,也可以有更多的選擇
資源利用:CPU 能夠在等待IO的時候做一些其他的操作
并發(fā)的危險:
安全性:多個線程共享數(shù)據(jù)是可能會產(chǎn)生于期望不相符的結(jié)果
活躍性:某個操作無法繼續(xù)進行下去時墨微,就會產(chǎn)生活躍性問題,比如死鎖扁掸、饑餓等問題
性能:線程過多會使得CPU頻繁切換翘县、調(diào)度時間增多、同步機制谴分、小號更多內(nèi)存