一个简单的C语言多线程程序
时间: 2024-09-25 10:10:02 浏览: 38
在C语言中,多线程编程可以使用POSIX标准库提供的线程API,如pthread库来实现。下面是一个简单的多线程程序示例:
```c
#include <stdio.h>
#include <pthread.h>
// 定义共享数据
int global_var = 0;
// 线程函数
void* thread_func(void* arg) {
int thread_id;
printf("Thread %d started.\n", thread_id);
// 对全局变量进行操作
for (int i = 0; i < 5; i++) {
global_var++;
printf("Thread %d incremented global_var to %d\n", thread_id, global_var);
sleep(1); // 暂停1秒,模拟工作
}
printf("Thread %d finished.\n", thread_id);
return NULL;
}
int main() {
pthread_t thread_1, thread_2; // 创建两个线程
// 创建并启动线程
pthread_create(&thread_1, NULL, thread_func, NULL);
pthread_create(&thread_2, NULL, thread_func, NULL);
// 等待所有线程完成
pthread_join(thread_1, NULL);
pthread_join(thread_2, NULL);
printf("Global variable value after both threads finish: %d\n", global_var);
return 0;
}
```
在这个例子中,`thread_func`函数是每个线程的任务,它会并发地更新全局变量`global_var`。主线程通过`pthread_create`创建了两个新线程,并使用`pthread_join`等待它们结束。
阅读全文