1
我通常使用的创建使用OpenMP
#pragma omp critical(lock)
{ ... }
指令,当我需要确保只有一个线程执行所给的一段代码共享锁。
所以我在寻找的是一种使用类似的东西来实现共享锁和排他锁的方法。我有多个线程可以读取或写入一个变量。当一个线程正在写入时,它将阻止所有其他线程读取或写入。然而读取变量不应该阻止任何东西。我怎样才能做到这一点?
我通常使用的创建使用OpenMP
#pragma omp critical(lock)
{ ... }
指令,当我需要确保只有一个线程执行所给的一段代码共享锁。
所以我在寻找的是一种使用类似的东西来实现共享锁和排他锁的方法。我有多个线程可以读取或写入一个变量。当一个线程正在写入时,它将阻止所有其他线程读取或写入。然而读取变量不应该阻止任何东西。我怎样才能做到这一点?
不幸的是,OpenMP不支持读写器锁定。您可以改用其他库,如提供shared_lock的Boost。