多线程 - 在数组中我应该保护什么?

2024-04-19

我正在编写一些具有全局数组的代码,该数组可以由两个线程访问以进行读写目的。

读取或写入一系列索引时不会进行批处理,因此我试图弄清楚是否应该锁定整个数组或仅锁定我当前正在使用的数组索引。

最简单的解决方案是将数组视为 CS 并在其周围放置一个大锁,但我可以避免这种情况而只锁定索引吗?

Cheers.


锁定一个索引意味着您可以跟踪哪个线程正在访问数组的哪一部分。跟踪在读取线程和写入线程之间共享的这一信息意味着您对此信息拥有一把锁。所以,你最终仍然会得到一个全局锁。 在这种情况下,我认为最有效的方法是: - 使用读/写锁 - 或者将大数组划分为几个子集,每个子​​集使用不同的锁。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

多线程 - 在数组中我应该保护什么? 的相关文章

随机推荐