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;//你想停多久都可以
}
}
}
[解决办法]
不用,创建的那个线程会自动退出,不知道是不是你想要的效果