有没有办法用单线程版本库编译多线程C ++程序?

时间:2015-07-06 08:39:12

标签: c++ multithreading compilation g++ clang++

我正在尝试执行代码自动编译和自动评估程序。我想比较一个程序在多线程模式和单线程模式下的效率差异。所以我很奇怪,如果有一个编译选项允许我使用psudo-multithread库(使用实际的单线程实现)编译多线程程序,从多线程程序派生单线程程序。 / p>

1 个答案:

答案 0 :(得分:0)

我不知道你用于多线程的是什么 您可以使用OpenMP共享内存多处理API。

您可以通过两种方式在多线程模式和单线程模式之间切换:

  • 在GCC和Clang中使用-fopenmp标志禁用/启用OpenMP。
  • 使用OMP_NUM_THREADS=X环境变量或直接使用例程set_omp_num_threads(X),其中X是您的主题号码。

请注意,它们不等同的两种方式之间存在差异。如果需要,我可以详细说明这一点。