创建多个线程C语言
时间: 2023-11-15 10:05:03 浏览: 40
好的,以下是一个使用 C 语言创建多个线程的示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <pthread.h>
void *worker(void *arg) {
int *num = (int *)arg;
printf("Worker: %d\n", *num);
pthread_exit(NULL);
}
int main() {
pthread_t threads[5];
int i, *arg;
for (i = 0; i < 5; i++) {
arg = (int *)malloc(sizeof(int));
*arg = i;
if (pthread_create(&threads[i], NULL, worker, arg)) {
fprintf(stderr, "Error creating thread\n");
return 1;
}
}
for (i = 0; i < 5; i++) {
if (pthread_join(threads[i], NULL)) {
fprintf(stderr, "Error joining thread\n");
return 2;
}
}
return 0;
}
```
这个例子中,我们定义了一个 `worker` 函数作为每个线程要执行的任务。然后,我们使用 `pthread_t` 类型的数组来保存每个线程的标识符。接着,我们使用 `pthread_create` 函数创建每个线程,并将它们放入 `threads` 数组中。在创建每个线程时,我们还为 `worker` 函数传递了一个参数,以便它能够执行不同的任务。
最后,我们使用 `pthread_join` 函数等待每个线程完成,以确保程序在所有线程都执行完毕后才退出。
相关推荐
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)