您的位置:首页 > 其它

父线程用标志变量控制子线程的范例

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

       通用范例如下:

#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]$ 

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

       
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: