多线程增加了矩阵乘法示例中的时间?

时间:2016-02-01 22:08:19

标签: java arrays multithreading multidimensional-array threadpool

如代码所示,线程增加的次数增加,线程减少的次数增加,最优为1。

Cursor c = getContentResolver().query(uri, null, null, null, null)

如代码所示,线程增加的次数增加,线程减少的次数增加,最优为1。

1 个答案:

答案 0 :(得分:1)

创建注释中指出的线程存在开销问题。

此外,当多个CPU尝试修改每个CPU的高速缓存行上表示的内存时,该高速缓存行的第一次修改会导致其他CPU中的高速缓存行被标记为无效。这在SMP系统中产生了真正的性能问题。这个问题被称为虚假分享。

当您修改多个CPU在地址空间中靠近的内存区域时,您很容易出现错误共享。有关情况的精彩报道,see Dr. Dobbs

您的代码似乎可能会遭受虚假共享,因为您符合一般标准。您正在修改数据,数据在内存中靠得很近,而您在多个线程上执行此操作。如果你还有一个以上的CPU核心,那么几乎可以肯定至少有一定程度的虚假共享。