0

考虑以下使用 Open MP 的场景:

我们有一个指针A指向内存中的一个非常大的缓冲区,并且我们有几个线程,一个线程(我们称之为线程#1)不断更新其中的内容,A而另一个线程基于由 #1 控制的信号处理存储在A.

这是确保最快的方法(假设告诉其他线程正确复制时间的信号A是原子的,所以那里没有竞争条件):

  1. 处理数据的线程将始终使用更新的数据(例如,不会有某些数据被缓存在寄存器中的风险等)。

  2. 很棒的表演。

4

1 回答 1

2

你可以试试读写锁。线程#1 持有写锁,其他线程持有读锁。这样所有其他线程都可以并行读取,只有读取和写入是互斥的。

于 2013-04-15T01:56:20.740 回答