C语言创建多线程运行一个函数并且函数中能控制关闭退出进程
时间: 2023-12-04 09:05:22 浏览: 48
可以使用C语言中的pthread库来创建多线程,并且在线程中运行一个函数。同时,可以使用一个全局变量或者信号量来控制函数中的退出。
以下是一个简单的示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <pthread.h>
int flag = 1; // 全局变量控制函数退出
void* thread_func(void* arg) {
while(flag) {
// 线程函数执行的操作
}
printf("Thread exited.\n");
pthread_exit(NULL);
}
int main() {
pthread_t tid;
int ret = pthread_create(&tid, NULL, thread_func, NULL);
if(ret != 0) {
printf("Failed to create thread.\n");
exit(1);
}
// 主线程执行的操作
flag = 0; // 设置全局变量,通知线程退出
pthread_join(tid, NULL);
printf("Main thread exited.\n");
return 0;
}
```
在线程函数中,使用while循环来执行需要的操作,同时判断全局变量flag是否为1,如果为0则退出循环。在主线程中,设置flag为0,等待线程退出后结束程序。如果需要在函数中控制退出,可以使用类似的方法,在需要退出时设置flag为0即可。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)