当前位置:  开发笔记 > 编程语言 > 正文

int []数组上的并发读访问:它安全吗?它快吗?

如何解决《int[]数组上的并发读访问:它安全吗?它快吗?》经验,为你挑选了2个好方法。

在四核机器上,我正在考虑C#/ .NET算法的并行化,它涉及让多个线程同时读取小型int []数组.到目前为止,它似乎运行得相当好,但我不确定在哪里指定数组上的并发读取在.NET中是线程安全的.有什么指针吗?

然后,我也想知道这种方法是否真的有效?有没有你最好实际复制每个线程的输入数据,以便没有任何并发​​读取,每个阵列(可能?)有机会在亲和CPU附近缓存?

关于多核CPU的最佳实践的任何想法?



1> R. Martinho ..:

我不认为并发读取存在问题.但是,如果存在并发写入,则可能会出现问题.

不可变数据本质上是线程安全的.



2> Spence..:

在您的情况下,对数组的并发读取将是线程安全的.

至于算法的有效性,根据数组的大小,如果它适合缓存,那么你可能会看到出色的性能提升,因为多核有效地"对抗"CPU中的缓存.如果他们正在努力用相同的信息填充缓存,他们将分享意味着更多的缓存命中和更好的性能.

假设您的阵列适合缓存...

推荐阅读
Chloemw
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有