C++中判断线程是否执行完成
时间: 2023-10-13 12:04:51 浏览: 222
deleteauto.rar_进程与线程_Visual_C++_
在 C 中判断线程是否执行完成,可以使用 pthread_join 函数。pthread_join 函数会阻塞当前线程直到指定的线程执行完成。具体使用方法如下:
1. 在创建线程时,将线程 ID 存储到一个变量中。
2. 在主线程中调用 pthread_join 函数,等待指定的线程执行完成。
3. 如果 pthread_join 函数返回值为 0,则表示指定的线程已经执行完成。
下面是一个示例代码:
```
#include <stdio.h>
#include <pthread.h>
void* thread_func(void* arg) {
printf("Child thread is running...\n");
pthread_exit(NULL);
}
int main(int argc, char* argv[]) {
pthread_t tid;
int ret;
// 创建线程
ret = pthread_create(&tid, NULL, thread_func, NULL);
if (ret != 0) {
printf("Failed to create thread.\n");
return -1;
}
// 等待子线程执行完成
ret = pthread_join(tid, NULL);
if (ret != 0) {
printf("Failed to join thread.\n");
return -1;
}
printf("Child thread is finished.\n");
return 0;
}
```
阅读全文