用C语言写一个简单的并行编程的代码例子
时间: 2024-09-23 10:10:39 浏览: 39
在C语言中,标准库并没有提供原生的并行处理功能,因为C主要是用于系统级编程和低级别的控制。不过,你可以通过POSIX线程(pthread)库或者使用一些第三方库(如OpenMP)来进行并行编程。
下面是一个简单的OpenMP示例,它展示了如何利用OpenMP并行化一个for循环:
```c
#include <stdio.h>
#include <omp.h> // 引入OpenMP头文件
#define NUM_THREADS 4 // 定义并行任务的数量
int main() {
int i, n = 10;
double result = 0;
#pragma omp parallel shared(result) // 标注并行区域
{ // 使用parallel指令开启并行进程
int thread_id = omp_get_thread_num(); // 获取当前线程ID
for (i = thread_id; i < n; i += NUM_THREADS) {
result += i * i; // 并行计算每个线程的部分结果
}
}
printf("Result from all threads: %f\n", result);
return 0;
}
```
在这个例子中,`#pragma omp parallel`指令会创建多个工作线程,每个线程计算部分累加结果,最后在主线程中汇总。注意,`shared`关键字用于声明变量会被所有线程共享。
阅读全文