2015-10-17 53 views
0

我有一個多線程應用程序的簡單代碼,但不管我傳遞的線程數是多少,它只能用一個線程執行。最初,我認爲這是我的電腦的問題,但我嘗試了另一個,它也沒有工作。我有什麼不對嗎?如果有幫助,我正在使用Visual Studio 2015。Visual C++只有一個線程正在工作(OpenMP)

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'; 
    } 
} 

回答

4

您是否在項目屬性對話框中激活了OpenMP支持? 你可以在「配置屬性 - > C/C++ - >語言」下找到它。