写入公共队列有助于解决并发问题

时间:2013-01-24 18:25:10

标签: multithreading concurrency

请参阅:https://stackoverflow.com/a/3865121/1071840

据我所知,如果多个线程将请求推送到单个队列,并且缓冲区写入线程将具有读取/更新队列的独占访问权限,则可以同时写入和读取此队列,我们​​将实现无锁序列化。

但我的问题是线程不需要获取队列本身的锁定。我希望保持提出请求的顺序。

[这不是一个家庭作业问题。我只是想了解如何使用异步写入缓解多线程环境中的并发问题]

1 个答案:

答案 0 :(得分:1)

  

但我的问题是线程不需要获取队列本身的锁定。

不一定。有并发队列实现(例如this one in .NETPPL中的此实现),它们要么完全无锁,要么使用比锁定整个队列更细粒度的锁定。这可以显着提高整体吞吐量。