背景
例如分配一片內(nèi)存,一般是順序申請,亂序回收
如果是跨線程的話,一般需要引入鎖來解決并發(fā)訪問的問題
然而鎖的使用画拾,極大的限制住了最高的訪問并發(fā)量
在此提出了無鎖解決的方案
無鎖解決方案
有N個資源
我們可以定義一個長度為N的數(shù)組來管理資源
每個資源對應(yīng)一個index
引入一個N個slot的MPMC無鎖隊(duì)列
來管理空閑的index
算法如下:
-> allocate resource
-> pop index from mpmc_queue
-> get resource by index from array
-> release resource
-> push index back to mpmc_queue