c语言实现多线程并发的代码
时间: 2024-03-22 08:37:45 浏览: 195
在 C 语言中,可以使用线程库 pthread.h 来实现多线程并发。以下是一个简单的示例代码,其中创建了两个线程,分别执行 `thread_func1` 和 `thread_func2` 函数。
```c
#include <stdio.h>
#include <pthread.h>
void *thread_func1(void *arg) {
int i;
for (i = 0; i < 5; i++) {
printf("Thread 1: %d\n", i);
sleep(1);
}
return NULL;
}
void *thread_func2(void *arg) {
int i;
for (i = 0; i < 5; i++) {
printf("Thread 2: %d\n", i);
sleep(1);
}
return NULL;
}
int main() {
pthread_t tid1, tid2;
// 创建线程1
if (pthread_create(&tid1, NULL, thread_func1, NULL) != 0) {
printf("Failed to create thread 1\n");
return 1;
}
// 创建线程2
if (pthread_create(&tid2, NULL, thread_func2, NULL) != 0) {
printf("Failed to create thread 2\n");
return 1;
}
// 等待线程1结束
if (pthread_join(tid1, NULL) != 0) {
printf("Failed to join thread 1\n");
return 1;
}
// 等待线程2结束
if (pthread_join(tid2, NULL) != 0) {
printf("Failed to join thread 2\n");
return 1;
}
return 0;
}
```
在该示例代码中,使用 `pthread_create` 函数创建了两个线程,分别执行 `thread_func1` 和 `thread_func2` 函数。在 `main` 函数中,使用 `pthread_join` 函数等待线程执行完成。注意,`pthread_join` 函数是阻塞的,必须等待线程执行完毕才能继续执行后面的代码。
阅读全文