C语言多线程代码示例
时间: 2024-09-23 08:11:25 浏览: 48
C语言本身并不直接支持多线程,因为它缺乏内置的线程库。但是,你可以使用POSIX线程库(pthreads)来编写多线程程序。下面是一个简单的多线程代码示例:
```c
#include <stdio.h>
#include <pthread.h>
// 线程函数
void* thread_func(void* arg) {
int thread_id = (int)arg;
printf("Thread %d started\n", thread_id);
// 这里放你的线程任务代码
sleep(2); // 模拟工作时间
printf("Thread %d finished\n", thread_id);
return NULL;
}
int main() {
pthread_t threads[2]; // 创建两个线程
int i;
for(i = 0; i < 2; ++i) {
if (pthread_create(&threads[i], NULL, &thread_func, (void*)i)) { // 创建线程并传入参数
perror("Error creating thread");
exit(EXIT_FAILURE);
}
}
// 等待所有线程完成
for(i = 0; i < 2; ++i) {
if (pthread_join(threads[i], NULL)) { // 等待线程结束
perror("Error joining thread");
exit(EXIT_FAILURE);
}
}
printf("Main thread exiting\n");
return 0;
}
```
在这个例子中,`thread_func`是每个线程要执行的任务,`main`函数创建了两个线程,并通过`pthread_create`启动它们。`pthread_join`用于等待线程结束。
注意:在实际项目中,你需要链接pthread库(-lpthread),并且在编译时启用线程支持 `-D_REENTRANT`。
阅读全文