子线程停止时间

main.c

#include
#include
#include
#include
#include
#include
#include
#include
void* call_back(void*agv)
{
	char input[5]={0};
loop:
	scanf("%s",input);
	char str[5]="quit";
	if(!strcmp(str,input)){
		*(int*)agv=1;
		return NULL;
	}else{
		fflush(stdin);
		goto loop;
	}


}
int main(int argc, const char *argv[])
{
	pthread_t pid;
	int flag=0;
	pthread_create(&pid,NULL,call_back,&flag);
	time_t t;
	while (1)
	{
		t=time(NULL);
		struct tm *info=NULL;
		info=localtime(&t);
		system("clear");
		printf("%4d-%02d-%02d %02d:%02d:%02d\n",info->tm_year+1900,info->tm_mon+1,info->tm_mday,info->tm_hour,info->tm_min,info->tm_sec);
		printf("输入quit时间停止\n");
		sleep(1);
		if(1==(int)flag){
			break;
		}
	}
	return 0;
}

通过判断线程结束实现打印翻转字符
main.c

#include
#include
#include
#include
#include
char buf[]="1234567";
void* callback_a(void*value){
	printf("%s\n",buf);
	pthread_exit(NULL);
}
void* callback_b(void*value){
	int len=strlen(buf);
	char t;
	int i;
	for(i=0;i<len/2;i++){
		t=buf[i];
		buf[i]=buf[len-1-i];
		buf[len-1-i]=t;
	}
	pthread_exit(NULL);
}
int main(int argc, const char *argv[])
{
	int flag=1;
	pthread_t pida;
	pthread_t pidb;
	int i=0;
	while(i<20)
	{
		i++;
		if(1==flag){
			if(0!=(pthread_create(&pida,NULL,callback_a,NULL)))
			{
				printf("线程A创建失败\n");
				break;
			}
			if(0!=(pthread_join(pida,NULL)))
			{
				printf("线程A退出失败\n");
				break;
			}
			flag=0;
		}
		if(0==flag){
			if(0!=(pthread_create(&pidb,NULL,callback_b,NULL)))
			{
				printf("线程B创建失败\n");
				break;
			}
			if(0!=(pthread_join(pida,NULL)))
			{
				printf("线程A退出失败\n");
				break;
			}
			flag=1;
		}
	}			
	return 0;
}

子线程停止时间_第1张图片

你可能感兴趣的:(c++,c语言,算法,排序算法)