我通常使用
#pragma omp critical(lock)
{ ... }
指令,当我需要确保只有一个线程在执行一段给定的代码时。
所以我正在寻找一种使用类似方法实现共享锁和独占锁的方法。我有多个线程可以读取或写入一个变量。当一个线程正在写入时,它将阻止所有其他线程读取或写入。但是读取变量不应该阻止任何东西。我该怎么做?
最佳答案
不幸的是,OpenMP 不支持读写锁。您可以改用其他库,例如提供 shared_lock 的 Boost .
关于c++ - 使用openmp创建共享锁,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12348983/