同步(synchronous)和異步(asynchronous) 併發(Concurrency)和並行(Parallelism) 臨界區 阻塞(Blocking)和非阻塞(Non-Blocking) 鎖(Deadlock)、飢餓(Starvation)和活鎖(Livelock) 並行的級別
同步(synchronous)和異步(asynchronous)併發
併發(Concurrency)和並行(Parallelism)異步
臨界區async
阻塞(Blocking)和非阻塞(Non-Blocking)atom
死鎖(Deadlock)、飢餓(Starvation)和活鎖(Livelock)線程
併發級別3d
阻塞code
當一個線程進入臨界區後,其餘線程必須等待
無障礙(Obstruction-Free)blog
– 無障礙是一種最弱的非阻塞調度 – 自由出入臨界區 – 無競爭時,有限步內完成操做 – 有競爭時,回滾數據
無鎖(Lock-Free)get
– 是無障礙的 – 保證有一個線程能夠勝出 while (!atomicVar.compareAndSet(localVar, localVar+1)) { localVar = atomicVar.get(); }
無等待(Wait-Free)同步
– 無鎖的 – 要求全部的線程都必須在有限步內完成 – 無飢餓的
有關並行的2個重要定律
Amdahl定律(阿姆達爾定律)
Gustafson定律(古斯塔夫森)