一个不含pthread_join 函数的多线程简单C语言示例程序
时间: 2023-11-02 12:04:57 浏览: 106
下面是一个简单的不含 pthread_join 函数的多线程 C 语言示例程序:
```c
#include <stdio.h>
#include <stdlib.h>
#include <pthread.h>
void* thread_func(void* arg)
{
int i;
for (i = 0; i < 10; i++) {
printf("Thread %d is running\n", *(int*)arg);
}
pthread_exit(NULL);
}
int main()
{
pthread_t tid[2];
int i;
int arg[2] = {1, 2};
for (i = 0; i < 2; i++) {
if (pthread_create(&tid[i], NULL, thread_func, &arg[i]) != 0) {
printf("Error creating thread %d\n", i);
exit(1);
}
}
printf("Main thread is running\n");
return 0;
}
```
这个程序创建了两个线程,每个线程都会打印出一段信息。主线程也会打印出一段信息。这个程序没有使用 pthread_join 函数等待子线程执行完毕,而是直接退出。这种情况下,子线程会在主线程退出时自动终止。注意,这种做法是有风险的,因为主线程退出时,子线程可能还没有执行完毕,这可能会导致一些未知的问题。因此,在实际应用中,我们通常会使用 pthread_join 函数等待子线程执行完毕。
阅读全文