请参阅:https://stackoverflow.com/a/3865121/1071840
据我所知,如果多个线程将请求推送到单个队列,并且缓冲区写入线程将具有读取/更新队列的独占访问权限,则可以同时写入和读取此队列,我们将实现无锁序列化。
但我的问题是线程不需要获取队列本身的锁定。我希望保持提出请求的顺序。
[这不是一个家庭作业问题。我只是想了解如何使用异步写入缓解多线程环境中的并发问题]
答案 0 :(得分:1)
但我的问题是线程不需要获取队列本身的锁定。
不一定。有并发队列实现(例如this one in .NET或PPL中的此实现),它们要么完全无锁,要么使用比锁定整个队列更细粒度的锁定。这可以显着提高整体吞吐量。