c++ - Visual C++ 只有一个线程在工作 (OpenMP)

标签 c++ multithreading visual-c++ openmp

我有一个用于多线程应用程序的简单代码,但无论我传递给它的线程数是多少,它都只用一个线程执行。起初,我以为这是我电脑的问题,但我在另一台电脑上试了一下,也没有用。我有什么不对吗?如果有帮助,我正在使用 Visual Studio 2015。

int th_id, nthreads;
#pragma omp parallel private(th_id) shared(nthreads) num_threads(3)
{
    th_id = omp_get_thread_num();
    #pragma omp critical
    {
        cout << "Hello World from thread " << th_id << '\n';
    }
    #pragma omp barrier

    #pragma omp master
    {
        nthreads = omp_get_num_threads();
        cout << "There are " << nthreads << " threads" << '\n';
    }
}

最佳答案

您是否在项目属性对话框中激活了 OpenMP 支持? 您可以在“配置属性 -> C/C++ -> 语言”下找到它。

关于c++ - Visual C++ 只有一个线程在工作 (OpenMP),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33184599/

相关文章:

c++ - 为什么 std::thread 在被要求运行重载函数时会抛出错误?

用于后台加载的 C++ 线程

c++ - 在 C++ 中初始化矩阵时出现段错误(核心已转储)

c++ - 按位非操作如何给出负值

c++ - QLabel,去除边框和背景

c# - 编译器如何知道委托(delegate)的类型是什么?

java - 如何找出方法被执行?

python - 在后台python中作为线程运行函数并在其应用程序之前退出

c - VC++ : fprintf error in release mode

c++ - 宏调用中的 #ifdef 适用于 gcc 但不适用于 msvc