高併發 並行,多執行緒 同步非同步,鎖

2021-10-07 10:36:44 字數 1092 閱讀 2906

1、

為什麼需要並行?

-業務要求(業務需要邏輯執行單元,想到用執行緒充當這個單元 )

-效能並行**比序列**複雜的多。

2、幾個重要的概念

同步(synchronous)和非同步(asynchronous) 相對於方法呼叫而言。

同步等待方法返回。非同步呼叫瞬間返回,呼叫不一定完成,在後台另起乙個執行緒慢慢的去做它的事情。非同步不影響做下面的事情。

並行:兩個執行緒同時執行,多cpu並行執行

併發:一會做這件、一會做這件……

臨界區:用來表示一種共享資料或公共資源,可以被多個執行緒使用。但是每一次,只能有乙個執行緒使用,一旦臨界區資源被占用,其他執行緒要想使用這個資源,必須等待。

阻塞和非阻塞:乙個執行緒占用了臨界區資源,那麼其他所有需要這個資源的執行緒就必須在這個臨界區等待,等待導致執行緒被掛起。這種情況就是阻塞。

此時,如果占用資源的執行緒一直不釋放資源,那麼其他所有阻塞在這個臨界區上的執行緒都不能工作。

非阻塞:允許多個執行緒同時進入臨界區。

有關並行2個重要定律

amdahl定律(阿姆達爾定律)

-定義了序列系統並行化後的加速比的計算公式和理論上限。

-加速比定義:加速比=優化前系統耗時/優化後系統耗時

步驟2和步驟5 優化,並行操作,用兩個cpu執行。

加速比=優化前的系統耗時/優化後的系統耗時=500/400=1.25

gustafson定律(古斯塔夫森)

只要有足夠的並行化,那麼加速比和cpu成正比。

併發並行同步非同步多執行緒

自 首先理解概念 你吃飯吃到一半,來了,你一直到吃完了以後才去接,這就說明你不支援併發也不支援並行。你吃飯吃到一半,來了,你停了下來接了 接完後繼續吃飯,這說明你支援併發。不一定是同時的 你吃飯吃到一半,來了,你一邊打 一邊吃飯,這說明你支援並行。併發的關鍵是你有處理多個任務的能力,不一定要同時。並...

併發 多執行緒 非同步 並行

一 基本概念 併發 同時處理多件事情,在處理第乙個請求時同時響應第二個請求 同步 同步就是順序執行,執行完乙個再執行下乙個,需要等待 協調執行,同步 呼叫在繼續之前等待響應或返回值。如果不允許呼叫繼續,就說呼叫被阻塞 了 非同步 併發的一種形式,1 它採用 機制,避免產生不必要的執行緒。2 多執行緒...

併發 並行 同步 非同步 多執行緒的區別

多執行緒和非同步操作的異同 多執行緒和非同步操作兩者都可以達到避免呼叫執行緒阻塞的目的,從而提高軟體的可響應性。甚至有些時候我們就認為多執行緒和非同步操作是等同的概念。但是,多執行緒和非同步操作還是有一些區別的。而這些區別造成了使用多執行緒和非同步操作的時機的區別。非同步操作的本質 所有的程式最終都...