多线程用同一个函数C语言demo
时间: 2023-08-04 18:11:53 浏览: 135
以下是一个使用多线程调用同一个函数的C语言示例代码:
```c
#include <stdio.h>
#include <pthread.h>
void* thread_func(void* arg) {
int thread_num = *(int*)arg;
// 执行一些线程任务
printf("Thread %d is running\n", thread_num);
return NULL;
}
int main() {
int num_threads = 5;
pthread_t threads[num_threads];
// 创建多个线程
for (int i = 0; i < num_threads; i++) {
int* thread_num = malloc(sizeof(int));
*thread_num = i;
pthread_create(&threads[i], NULL, thread_func, thread_num);
}
// 等待所有线程执行完毕
for (int i = 0; i < num_threads; i++) {
pthread_join(threads[i], NULL);
}
return 0;
}
```
在这个示例中,我们创建了5个线程,并使用`pthread_create()`函数启动它们。每个线程都调用`thread_func()`函数来执行一些任务,这个函数接收一个整数参数`thread_num`,表示当前线程的编号。在这个示例中,`thread_func()`函数只是简单地打印出当前线程的编号,以证明这些线程在同时运行。
最后,我们使用`pthread_join()`函数等待所有线程执行完毕,然后退出程序。
阅读全文