私がSet
と別のものを持っているとしましょうQueue
。チェックインしたいのですが、set
そうでcontains(Element)
ない場合はチェックインadd(element)
しqueue
ます。2つのステップをアトミックに実行したいと思います。
明らかな方法の1つは、synchronized
ブロックまたはLock.lock()/unlock()
メソッドを使用することです。スレッドの競合の下で、これらはコンテキストスイッチを引き起こします。これを非ブロッキング方式で実現するための簡単な設計戦略はありますか?いくつかのアトミックコンストラクトを使用している可能性がありますか?