我想在我的cpp多线程代码中使用std::experimental::barrier。但是即使我写这样的代码:

#include <iostream>
#include <thread>
#include <experimental/barrier>

int main () {

  return 0;
}


编译器抛出错误,说明:

experimental/barrier: No such file or directory
 #include <experimental/barrier>
                               ^`


我在Ubuntu机器上使用的是g ++版本6.3.0。
这是我正在尝试的命令:

g++ -pthread -std=c++11 top.cpp -o top_new

最佳答案

目前该库尚不可用。

也许这将是有用的:
The GNU C++ Library Manual -> Part III. Extensions -> 30. Concurrency


  文件包含用于处理线程的所有更高级别的构造。与原子层相反,并发层主要由类型组成。所有类型都在命名空间__gnu_cxx中定义。
  
  ...
  
  此外,还有两个宏
  
  _GLIBCXX_READ_MEM_BARRIER
  
  _GLIBCXX_WRITE_MEM_BARRIER
  
  扩展到主机硬件和操作系统所需的适当的读写屏障。

09-08 09:27