我最近听说过Reentrantlock可用Java提供。但我试图使用openmp和C ++实现并行数据结构,如优先级队列。
我很想知道openmp和C ++中是否存在类似的等价物,或者是否可以使用pthread实现?如果存在这样的等价物,请告诉我们如何使用它。
答案 0 :(得分:1)
请参阅OpenMP 4.5 standard中第270页的omp_nest_lock说明(PDF第279页)。
一个元问题是“你为什么要这样做?”
你为什么不简单地使用像TBB's Concurrent Priority Queue这样的东西呢?
您是否出于其他原因需要使用OpenMP?
这是为了你自己的教育吗?
如果没有,那么TBB可能是一种更简单的方法(它现在是Apache Licensed)。
(FWIW我为英特尔工作,他写过TBB,但我的工作是OpenMP,而不是TBB: - ))