解決在C語言,C++語言下使用多綫程Omp,申請進程不成功問題

本文介紹了一個C語言中的多進程應用案例,並解決了在使用OpenMP時只能開啟一個進程的問題。通過調整項目屬性的OpenMP支持設置,成功實現了八個進程的並行執行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

近日,在看一個C语言代碼的時候,看到了多進程的相關案例,但是在自己嘗試的時候,按照網上的教程,發現教程内容不能正常使用,特提出解決方法:

#include <iostream>
#include <omp.h>


using namespace std;

static int i = 0;
void PlayOjbk()
{







//设置线程数,一般设置的线程数不超过CPU核心数,这里开四个线程执行并行代码段
//omp_set_num_threads(4);
omp_set_num_threads(8);
#pragma omp parallel
{
//用cout输出会混乱
//cout << "hello!!!" << "I am Thread " << omp_get_thread_num() << "\n" << endl;
printf("i = %d, I am Thread %d \n", i, omp_get_thread_num());
i++;
}
printf("omp_get_num_procs(void):%d\n", omp_get_num_procs());
printf("omp_get_num_threads(void):%d\n", omp_get_num_threads());




}


int main(int argc, char **argv)
{


PlayOjbk();


printf("i:%d\n", i);


system("pause"); 
// return 0;
}



按照上面的代碼,申請了八個進程,實際上只開闢了一個進程,解決這個問題的方案是:

打開項目屬性,依次選擇->配置属性->C、C++ -> 语言 ->OpenMP支持 ,选是。



设置之前运行效果:

设置之后运行效果:


可成功申请8个进程


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值