读书人

C++线程统制

发布时间: 2013-01-08 14:02:14 作者: rapoo

C++线程控制


[解决办法]
#include <stdlib.h>
#include <stdio.h>
#include <pthread.h>
#include <signal.h>
void *view(void *args);
volatile bool stopFlag= false;//add
int main(){
pthread_t id;
pthread_create(&id,NULL,view,NULL);
//启动过后主程序开始自己的循环
int n = 0;
while(true){
printf("主线程中的n%d\n",n);
n++;
Sleep(1000);
if(n == 30){
// pthread_cancel(id);

// pthread_exit(&id);
stopFlag=true;//add
}
}
}
void *view(void *args){
int i = 0;
while(true){
if(stopFlag)break;//add
i++;
Sleep(1000);
printf("辅助线程中的i%d\n",i);
}
}

[解决办法]
volatile long stoptime= 1000;

void *view(void *args){
int i = 0;
while(true){
i++;
Sleep(stoptime);
printf("辅助线程中的i%d\n",i);
}
}

int main(){
pthread_t id;
pthread_create(&id,NULL,view,NULL);
//启动过后主程序开始自己的循环
int n = 0;
while(true){
printf("主线程中的n%d\n",n);
n++;
Sleep(1000);
if(n == 30){
// pthread_cancel(id);



// pthread_exit(&id);
stoptime = 12345;//你想停多久都可以
}
}
}
[解决办法]

引用:
再问一下,我有这个变量了,那么需要用pthread_cancel()吗?

不用,创建的那个线程会自动退出,不知道是不是你想要的效果

读书人网 >C++

热点推荐