我通常使用串行隊列作爲鎖定機制,以確保一個資源可以被許多不同的線程訪問而不會出現問題。但是,我已經看到了其他開發人員使用併發隊列或甚至沒有信號的情況(在Linux上使用併發隊列和信號量看到了IBM/Swift)。Swift Queues/Concurrency and Locking
有沒有優點/缺點?我相信只要使用串行隊列就可以正確地阻塞資源而不浪費信號量。
另一方面,當CPU繁忙時會發生什麼?如果我沒有記錯,串行隊列不一定在同一個線程/同一個cpu上執行,對吧?
這將是我能想到的唯一解釋;併發隊列將能夠在所有可用的線程/ cpus上共享工作負載,確保通過信號量進行線程安全訪問。 使用沒有信號量的併發隊列將不安全,對吧?
非常感謝您的有識之士! :) – smat88dd