我正在编写一些具有全局数组的代码,该数组可以被两个线程访问以实现读写目的。
不会有读取或写入一系列索引的批处理,所以我正在尝试确定是否应该锁定整个数组,还是只锁定当前使用的数组索引。
最简单的解决方案是将数组视为CS,并在其周围放置一个大的大锁,但我是否可以避免这种情况,只锁定一个索引?
干杯。
发布于 2013-02-18 04:01:10
除非您在实际的运行条件下进行分析,否则没有办法知道什么是最优的。我建议实现一个类似数组的类,其中您可以将不同数量的元素锁定在组中。然后微调这些组的大小。
另一种选择是使用active object将所有读/写操作入队。这将使所有访问都是顺序的,这意味着您可以使用非并发数组类型来存储数据。这将需要在幕后使用某种并发队列数据结构。
https://stackoverflow.com/questions/14925294
复制相似问题