多线程(1)
创始人
2024-09-26 15:46:42
0

1、wait 函数

宏定义:WIFEXITED()    WEXITSTATUS()

调用进程 一般不做额外的事情 

#include  #include  #include  #include  #include   int main(int argc, const char *argv[]) { 	pid_t pid = fork();  	if (-1 == pid) 	{ 		perror("fork fail"); 		return -1; 	} 	if (pid > 0) 	{ 		int status; 		printf("father ----\n"); 		wait(&status); 		printf("status = %d\n",status);  		if (WIFEXITED(status)) 		{ 			printf("status = %d\n",WEXITSTATUS(status)); 		}  	}else if (pid == 0) 	{ 		printf("child exit \n"); 		exit(256); 	}	 	return 0; }

2、waitpid 函数

调用进程 逻辑一般不受影响

注意:waitpid 想要处理到子进程必须套在循环中 

 

3、pthread_库函数 

 (1)创建线程

 (2)获取线程的tid

(3)pthread_join函数:等待线程结束 

创建结束线程 

#include  #include  #include  #include   void * do_something(void *arg) { 	static int a = 10; 	//线程的任务函数  	printf("------do_something ---- \n");  	//pthread_exit(NULL); 	pthread_exit(&a); 	//pthread_exit((void *)a); }  int main(int argc, const char *argv[]) { 	pthread_t tid; 	int ret = pthread_create(&tid,NULL,do_something,NULL);  	if (ret != 0) 	{ 		errno = ret; 		perror("pthread_create fail"); 		return -1; 	}  	//sleep(3);    void *retval;  	//pthread_join(tid,&retval); 	pthread_join(tid,&retval);   	printf("---- main----%d\n",*(int *)retval); //	printf("---- main----%d\n",(int)retval);  	pthread_exit(NULL);  	return 0; }
#include  #include  #include  #include   void * do_something1(void *arg) { 	int *p = arg; 	//((int)(*arg))+=1; 	int a = *p; 	while (1) 	{ 		//线程的任务函数  		printf("------do_something1 ---- tid = %ld a = %d\n",pthread_self(),a++); 		sleep(1); 	} }  void * do_something2(void *arg) { 	int *p = arg;    //线程的任务函数     int a = *p;    while (1)    { 	   a += 2; 		printf("------do_something2 ---- tid = %ld a = %d\n",pthread_self(),a); 		sleep(1);    } }  int main(int argc, const char *argv[]) { 	int a = 10;  	pthread_t tid1; 	int ret = pthread_create(&tid1,NULL,do_something1,&a);  	if (ret != 0) 	{ 		errno = ret; 		perror("pthread_create fail"); 		return -1; 	}  	pthread_t tid2; 	ret = pthread_create(&tid2,NULL,do_something2,&a );  	if (ret != 0) 	{ 		errno = ret; 		perror("pthread_create fail"); 		return -1; 	}     //main do something   	while (1) 	{ 		printf("----main-----do_something--tid = %ld-\n",pthread_self()); 		sleep(1); 	}   	sleep(3); 	 	return 0; }

相关内容

热门资讯

安卓系统左右键在哪,左右键布局... 你是不是也和我一样,在使用安卓手机的时候,突然发现左右键不见了?别急,今天就来带你一探究竟,找出安卓...
安卓系统和苹果系统通用,安卓与... 你知道吗?在科技飞速发展的今天,手机已经成为了我们生活中不可或缺的一部分。而说到手机操作系统,安卓系...
安卓哪个系统最稳,揭秘最稳定的... 你有没有发现,手机用久了,系统有时候会变得有点“闹腾”?这不,最近就有不少朋友在问我:“安卓哪个系统...
软件换图标安卓系统,轻松打造个... 你有没有发现,手机里的软件图标有时候看久了,就会觉得有点审美疲劳呢?别急,今天就来给你支个招——给安...
安卓系统流畅运行软件,安卓系统... 你有没有发现,现在手机里的安卓系统越来越流畅了?就像是给手机装上了加速器,让那些软件跑得飞快,简直让...
好看的安卓系统手机,盘点市面上... 你有没有发现,最近手机圈里又掀起了一股热潮?没错,就是那些长得好看又好用的安卓系统手机!它们不仅颜值...
安卓机系统无法关机,探究原因与... 最近我的安卓手机怎么啦?总是关机不成功,真是让人头疼啊!这可怎么办呢?别急,让我来帮你分析找出解决这...
大佬安卓装苹果系统,跨平台体验... 亲爱的读者们,你是否曾经幻想过,你的安卓手机能装上苹果的系统呢?想象那会是多么酷炫的事情啊!今天,就...
安卓自动刷新系统,智能便捷的实... 你有没有发现,手机里的安卓系统有时候就像个勤劳的小蜜蜂,不停地刷新着各种信息?没错,这就是安卓自动刷...
安卓系统用升级吗,提升设备性能 你有没有发现,你的安卓手机最近是不是有点儿“懒洋洋”的?别急,别急,让我来给你揭秘为什么你的安卓系统...
怎么屏蔽安卓系统提醒,享受无干... 手机里的安卓系统提醒功能,有时候真是让人头疼不已。不是这个APP要更新,就是那个APP推送了新消息,...
安卓系统的王者大神,巅峰对决的... 你有没有发现,手机里那个安卓系统的王者大神,简直就像是我们生活中的超级英雄呢?它不仅强大无比,还能在...
安卓系统安装详细教程,一步到位 你终于决定给新手机安装安卓系统啦?这可是个明智的选择,安卓系统以其强大的兼容性和丰富的应用生态圈,让...
安卓8.0系统耗电快,揭秘原因... 你有没有发现,自从升级到安卓8.0系统后,手机好像变得特别“能吃”电呢?这不,最近好多朋友都在抱怨,...
安卓系统电话被标记,如何应对被... 最近你的安卓手机是不是也遇到了这样的事情?突然之间,电话被标记了,是不是让你一头雾水,心里直打鼓?别...
windows系统下载安卓软件... 你是不是也和我一样,对Windows系统上的安卓软件情有独钟呢?那种在电脑上就能享受到安卓应用的便捷...
安卓低耗电系统,续航无忧的智慧... 你有没有发现,最近你的安卓手机好像特别能“抗打”?电量消耗得慢多了,出门在外都不用担心手机没电了。这...
安卓系统增加主页按钮,Andr... 你知道吗?最近安卓系统又来了一次大更新,其中最引人注目的变化之一就是主页按钮的全新设计。这可不是一个...
锤子系统安卓更新,功能升级与性... 你知道吗?最近锤子科技可是大动作连连,他们的安卓系统更新简直让人眼前一亮!这不,我就迫不及待地来和你...
用电脑修复安卓系统,轻松修复安... 电脑修手机系统?这听起来是不是有点不可思议?但别小看了这个技能,它可是拯救了不少安卓手机用户的“神器...