術語比較:
- lock-free:沒鎖死。以系統觀點,只要執行夠長的時間,至少會有一個執行緒有進展。
- lockless (lock-freedom?):不用鎖。不用 lock 共用資料。不用鎖 (lockless) 未必不會鎖死 (lock-free),也可能鎖死。
- wait-freedom?:不用等
- obstruction-freedom
- non-blocking (非阻塞):
- 任何 thread 的失敗或暫停不會造成其它 thread 的失敗或暫停。non-blocking 演算法如果能保證 system-wide progress 是 lock-free,如果能進一步保證 per-thread progress 是 wait-free。
- 在電信網路,是指建立新的連線路徑不用調整現有的連線。沒缺陷的電話交換機總是可以建立連線 (nonblocking minimal spanning switch)。
參考
lock contention
微處理器專用 atomic 指令及軟硬體設計考量:ABA 問題, memory ordering 及 memory barrier、多核處理器特性、C11 標準的 <stdatomic.h>、Linux 核心介面
SPSC (single-producer and single-consumer)
SPMC (single-producer, multiple-consumer)
沒有留言:
張貼留言