1. 程式人生 > >高並發基礎

高並發基礎

分配 定律 資源釋放 com bubuko 分享圖片 可能 9.png 同時

1,線程

 1,同步和異步

 2,臨界區

   用來表示一種公共資源或者說是共享數據,可以被多個線程使用。但是每一次,只能有一個線程使用,其余的線程要等待臨界區資源釋放。

 3,阻塞和非阻塞:

   阻塞:一個線程占用臨界區,其余線程不能進入臨界區的時候叫做阻塞。

   非阻塞:允許多個線程進入臨界區。

 4,死鎖,活鎖,饑餓

   死鎖:多個線程都不能再執行。 靜態死鎖。

   活鎖:舉例是一個資源中有資源A和資源B,兩個線程一個拿到資源A,一個拿到資源B.因為都無法工作,兩個資源會同時釋放,看到A和B都可以拿到,然後同時再去拿資源,又會發生一個線程得到一部分資源的情況,然後無法運行。這種情況叫做活鎖,動態活鎖,

   饑餓:有可能因優先級比較低,而使得分配不到資源的情況叫做饑餓。

2,並發級別

  阻塞調度:一個線程占用臨界區,其余線程不能進入臨界區的時候叫做阻塞。

  非障礙調度:多個線程可以同時進入臨界區,寬進嚴出。無競爭時,有限步內完成操作。有競爭時,回滾數據。

  無鎖:非障礙的情況下,每一次競爭,保證一個線程可以勝出。

  無等待:前提是無鎖,然後再要求在有限步驟內完成。

3.阿姆達爾定律,古斯塔夫森定律(待擴展)

  阿姆達爾定律

    加速比:優化前的時間/優化後的時間

  技術分享圖片

    

高並發基礎