1.创建一个线程,执行的任务可自行定义;
2.若某种条件满足,例如标志位为1,则该线程退出
代码如下:
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <pthread.h>
int flag = 0; // 标志位
void *print_hello_world(void *arg) {
while (!flag) {
printf("hello world
");
sleep(1);
}
return NULL;
}
int main() {
pthread_t tid;
pthread_create(&tid, NULL, print_hello_world, NULL);
// 模拟设置标志位为1的情况,例如等待用户输入
getchar();
flag = 1;
pthread_join(tid, NULL);
return 0;
}
定义了一个全局变量 flag
作为标志位。接着定义了一个线程函数 print_hello_world
,该函数会不断循环打印 "hello world",直到 flag
变为1。在 main
函数中,我们创建了一个线程,并在用户按下任意键后将 flag
设置为1,最后等待线程结束。