在实际开发中, 我们会碰到太多需要开线程的例子, 通常会让子线程异步地处理一些信息。 一旦某些情况发生后, 我们需要在父线程中让子线程终止, 那则么办呢? 一个自然而言的想法是用标志变量控制

       通用范例如下:

#include <stdio.h>
#include <pthread.h>

#define YES 0
#define NO -1

int exitFlag = NO;

void *threadFun(void *p)
{
	while(NO == exitFlag)
	{
		printf("hello\n");
		sleep(1);
	}
}

int main()
{
	pthread_t id;
	pthread_create(&id, NULL, threadFun, NULL);
	getchar();
	exitFlag = YES;

	return 0;
}
      结果如下: (在执行过程中, 我按了Enter键, 改变exitFlag的值, 从而使得子线程退出)

[taoge@localhost learn_c]$ gcc test.c -lpthread
[taoge@localhost learn_c]$ ./a.out 
hello
hello
hello
hello


[taoge@localhost learn_c]$ 


       好了, 其实很简单, 也很常见很常用, 本文仅仅小小记录一下。





       


本文转载:CSDN博客