通常は、問題のないさまざまなスレッドによって1つのリソースにアクセスできるようにするため、ロックのメカニズムとしてシリアルキューを使用します。しかし、私は、他の開発者がセマフォを持つ、あるいは使わなくても並行キューを使用するケースを見てきました。スウィフトキュー/並行性とロック
利点/欠点はありますか?シリアルキューを使うだけで、セマフォーの時間を無駄にせずにリソースを正しくブロックできると私は信じています。
一方、CPUがビジー状態になるとどうなりますか?私が正しく覚えていれば、シリアルキューは必ずしも同じスレッド/同じCPU上で実行されるわけではないでしょうか?
これは私が考えることができる唯一の説明です。並行キューは使用可能なすべてのスレッド/ CPU上でワークロードを共有できるため、セマフォを介したスレッドセーフなアクセスが保証されます。 セマフォなしで並行キューを使用すると安全ではないでしょうか?
その洞察力のためにありがとうございました! :) – smat88dd