ConcurrentLinkedQueue や BlockingQueue などの組み込みキューの 1 つを使用すると、単一の呼び出しがアトミックになり、スレッドセーフであることが保証されます。しかし、API への 5 つの呼び出しのうち、4 つの呼び出しは単一ですが、1 つの呼び出しは次の形式です。
if(some condition)
{
queue.call();
}
この操作はアトミックではないため、この呼び出しは同期ブロック内にある必要があります。しかし、この呼び出しを導入するということは、読み取りまたは書き込みに関係なく、このキューへのすべてのアクセスをこれから同期する必要があるということでもありませんか?
はいの場合、単一の非アトミック呼び出しがコードに忍び寄ると、ファンシーキューへのすべてのアクセスを手動で同期する必要があると想定できますか?