OpenMP之间的区别是什么:
#pragma omp parallel sections
{
#pragma omp section
{
fct1();
}
#pragma omp section
{
fct2();
}
}
Run Code Online (Sandbox Code Playgroud)
并且:
#pragma omp parallel
{
#pragma omp single
{
#pragma omp task
fct1();
#pragma omp task
fct2();
}
}
Run Code Online (Sandbox Code Playgroud)
我不确定第二个代码是否正确......
我有4个线程,我想一次启动3个功能.每个函数都需要一个线程.
但是这段代码每次启动4次
#pragma omp parallel
{
Func1();
Func2();
Func3();
}
Run Code Online (Sandbox Code Playgroud)
我有这个结果:
Func*1*开始了
Func*1*开始了
Func*1*开始了
Func*1*开始了
Func*1*完成了
Func*1*完成了
Func*1*完成了
Func*1*完成了
Func*2*开始了
Func*2*开始了
Func*2*开始了
Func*2*开始了
Func*2*完成了
Func*2*完成了
Func*2*完成了
Func*2*完成了
...
我应该如何更改代码以显示如下:
Func*1*开始了
Func*2*开始了
Func*3*开始了
Func*2*完成了
Func*1*完成了
Func*3*完成了