付费下载
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、)gL5e金部3.编译和运行程序。tjclocaLhost'$vitest.ctjclccalhost$tjclocalhcst-iIamparent,mypidMyparentis5297IamparentfmypidMyparent154633tjclocalhostrS4.运行解释结果gcctest.c-dtest,/testIs:5298is:5297.进程的创建1 .编辑源程序。tjclocalhost.$viteit.c2 .编辑结果如下。tjcdlocalhost:-/件(E)埸捐(日查看(T)浮端(工)标密(工)帮助出:include-cstdio.h>main(
2、)intpl:whil(pl=forkCl)=-l)(p1-f)printf("Iamchild,nypidis:%dn"Pgetpid(1);printf("Myparentisgetppid)|;printfCianparent,pldls:dn,getpld();printf('Mfparentis虱iT*get叩idj17.9-1在语句p1=fork()之前,只有一个进程在执行这段代码,但在这条语句之后,就变成两个进程在执行了这两个进程的几乎完全相同,将要执行的下一条语句都是if(p1=0).而fork函数有三种返回值。(1)在父进程中,fork返
3、回新创建子进程的进程ID;(2)在子进程中,fork返回0;(3)如果出现错误,fork返回一个负值;所以,子进程中p1=0,输出Iamchild。父进程p1>0,输出Iamparent。1 .编辑源程序。Itjclocalhost'|Svitestl.c2 .编辑结果如下。tjcIocafhost:文件(£)编耨(E)查看(Y)终端Q)特密(工)帮助出)#Lnclude<stdio.ih>main()(intpl;putchar('x');丫二Hp仁fork=-!.);i"pl=G)putchar('b1);elseput
4、char('a');putcharCy*);)-插入-5,3,1日全部3 .编译和运行程序。(bytaytjclocalhostT*vitestl.ctJc(aioaltiosL=$gcctestL.c-otestltjclocslhost-i./testlxbyxxytclQglhoQt-$4 .运行解释结果在语句p1=fork()之前,只有父进程执行,putchar(X)语句将x放入父进程的缓冲区。当成功创建子进程后,子进程复制父进程的缓冲区。接着子进程运行输出xby,父进程输出xay。1 .编辑源程序。t)c«qB4ttjccc4tq-vLrtMlmwcHm:-
5、fXS$vtforishara2.c2 .编辑结果如下。星期三21:41咏则/酬cvq中virtualmachint:-f$L樽文件W)墀踊(E)fiS(V)(SI咚创CO帮助例I1 BKikLMistdto.,2 *tnclue<stdltb-h>3 fftncludeisys/types.h>4 #Int1ude*ufiistd«h>5into(7apaln()ielotpl;putchart);whlle(pl=fork(1):1*017)14)elseputch«r('b);txtt();putcharf.);putchar();全部
6、3 .编译和运行程序。tdbstop=8tjcccqaqjtjcccqiiq-vtrtuat-nachtnc:/文档$用anexit幻33“国叮"3”7(旧八再“111。:、/文格序gccforkshare_z,c-。f©rkshare_z:tjstqdq国七"fqaiqlLdi身Isjchtho/文档$./forksharej*naiyt。87叫七j±cxqdqytrtu总1t-Gaxhlriie:-/文畤Sxb|4 .运行解释结果在语句p1=fork()之前,只有父进程执行,putchar(X)语句将x放入父进程的缓冲区。当成功创建子进程后,子进程复
7、制父进程的缓冲区。接着子进程输出b后,执行exit(0)系统调用终止执行。父进程输出a后继续输出v。所以父进程输出xay而子进程输出xb。1 .编辑源程序。tjclocalhostvitest2.c2 .编辑结果如下。J1tjclocalhost:文件附端霜(口查看沙)塔端仃)标签(丁)皆助(H)#inclu(le<stdio,h>wincLude<stdl,ib.ti>main()Iinipi;whi'.e(pl=forkf>)1,(pl>G)(wait(GHputchar'a');else1putchar(1b1);exit(fi
8、);)I一二播入-17,2全部3 .编译和运行程序。tjclocalhost'$vltest2«ctjcLocalhast-$gcctesta.c*otestacalhostytestZbatjc(aiocalhost-$4 .运行解释结果语句while(p1=fork()=-1)创建了子进程和父进程。父进程执行到wait()时,等待子进程的终止信号,当子进程执行完exit(0)后,父进程才继续执行。实现了父进程等待子进程。1.编辑源程序。2.编辑结果如下。child.cchild_parent.c活动L1终送*英A*0OMi星期三22oatjcEcq«q>t
9、jcccqaq-virtu«Lm那hin*:-/jttt文忤同编辆闺*5(V)覆索的终端旧芾助CH)1ntncludestdtoxh>_2vtncli>d«<stdttb«h»3#tnrlud«unitdh>4 J»tnclude<'iy/types.h>5 tfincludsys/wait.a7 intnath()8 4帮吃whtl&(pMfork(3)-<);11tf(p-0)1!eHetlf1,/child13 el&e14 (15 watt(B);16 exli
10、(a);17 )Ifl3 .编译和运行程序。t»bstop*Stjeceqa<i®t5cccqaq-¥trtuaX-flaeht(i<:-/JttS$gccchild,c0childtjc«qdq<3tjcecqaq-vtrtii41-fla<hxne:-/SHsgccchildchildchild.cchildpdrent.ctjcccqaqatjcccflaq-vtrtwlnachtnc:gccchildparent.cochtld_pjrenttJ«uqaq0tJuuqaq7ltu3l*ETuh1w/文裆$,/ch
11、tld_parentIMdchild4 .运行解释结果语句while(p1=fork()=-1)创建了子进程和父进程。父进程执行wait(0)等待子进程的终止信号子进程加载child程序,输出Iamachild。子进程结束发出终止信号给父进程,父进程收到终止信号,继续执行,最后也执行exit(0),终止。1 .编辑源程序。tjtbqaqgt/文楂$vtpthread_create.c2 .编辑结果如下。活动星期二23:30出“q,q型4£q#q-5rtihLe,小in:一伐替文件旧埸我(日查看府南理浦E珏劲阳)1-dtKludhstdto,h>iAinciud噂.h>4v
12、oid*nyThreadl(votd)7a9i&iii卫)1314voidintI;fcr(i13件;1+)printf(!,i三Mtsl«P();*nyThread2(void)tritfcrprintf(Ti-sleep();24tnt25126N7-插入natn()tntpthrmd.ttdlvld£;话劭目终潴星期二23:38(JcccqaqtJcccqjq*vIrtuabm4chtne:-/5tB文件旧馆版IE)吕看喇搏声罚终流E帮劫1用prtfttf(tThl-tIsthezstpthrcadcr«atedrn');sleepi;)2S
13、eatn()inti=6>ret-6;pthread_tidlJS;ret-pthread_cre3te(aidl,j.llr(vaid*)FiyThreadl,.l);if(ret)(prtntf(Lreatt:口。一.:e1,d!n)ireturnij)ret-pthread_creat#(aidz,lF(v&idJnyihrfddz.L);tf(ret(prtntf("at,m'n);return1;pthreadjotn(tdid;pthread_gin(ld2/iuil);returne;3 .编译和运行程序。tjcccqaq<tjcccq9q-
14、vtrtualnachtrie:'u/$vtpthread_create-c谓按ENTER或其它命令继康tab与t:cp=gt""qaqtKuuqmq7ltual*Ed匚htnw/文档$gccpthread_create.c*lpthreadpthread_create.c:InfunctionJnyThreadl*:pthread.createIB:3:earning:implicitdeclarationoffunction*sleepf-wimplicit-function-declarationsletp(i);文匚5|aq.t£cwq.vlrti
15、idlFMhLii*:=/文档5总用量24drwxrxr-x2tjcccqaqdrwxr-xr-x15tjcccqaqrwxr-Xr-x1tjeceqaq-rw-r-r-1tjcccqaqtjcccqdgtjcccqaqtjcccqaqtjtccqaq4B9G48968576占491?月12月12月IN月ISIBIBIB23;33./23:Z623:33a+out*21133pthreadmeredte-cThiststhe2stpthreadcreated*Thisisthe1stpthreadcreated*Thisisthe2stpthreadcreated.ThisIsthepthre
16、adcreated*Thisisthe2stpthreadcreated.Thisisthe1stpthreadcreated,Thisisthe2stpthreadcreated.Thisisthe】¥tpthreadcreatedLThisistheZstpthreadcreated-,tjuuuqmqtjuucqaqTtftuailFa匚htce二-J文档$4 .运行解释结果pthread_create()函数创建进程。第一个参数为指向线程标识符的指针,及程序中的id1,id2,第二个参数设置线程属性,程序中没设置,即为NULL,第三个参数是运行函数的起始地址,用指针指向myT
17、hread函数的起始地址,最后一个参数是运行函数的参数。该程序创建了两个进程,id1,id2。在线程要运行的函数中设置了sleep函数,两个进程交替执行输出Thisisthe1/2stpthreadcreated。最后pthread_join函数为线程阻塞的函数,等待线程的结束,当函数返回是,被等待的线程的资源被收回。1 .编辑源程序。tjcccqaqtjcccqaq-virtual-nachtne:-$vtpthread_exanple.c2 .编辑结果如下。2789ievoid*threadl()1314151617181920212223prtntf(threadlI'rthre
18、adln);for(tnt1=0;t<MAX;printf(-threadl:nunber%dn,number);pthread_nutex_lock(4Hut);numberf*;pthread_nutex_unlock(&Hut);sleep(2);pthreadexit(*JULL);活动日终端星期三00:07tjcccqaqtjcccqdq-virtual-machint:以咨文件(F)蝙辑(E)查看(V)於索(S)终端帮助(H)flincludevstdt。.h>«tnclude<pthredd.h>»tnclude<sys/
19、ttne.h>«tnclude<strtng.h>*defineMAX10pthread_tthread2;pthread_nutex_tnut;tntnuRber=e,t;thread2()prtntf(thread2:I*nthread2n);"pthreadexample.cM77L.1386C顶端活动口终端星期三00:08英。(Jcccqaqt9tJcccqaq-vIrtuaUmachlne:文件(F)编辑(E)ge(V)接索(S)终端(T)帮助(H)28for(tntt-e;t<MAX;2930prtntf(wthread2:nunber&
20、#171;%dm',nunber);31pthread_Rutex_lock(anut);32number*;33pthread_Rutex_unlock(&Rut);34sleep(3);35)36pthread_extt(NULL);37)3839voidthread_create(votd)4041tnttenp;42nensetC&threddO,stzeofCthread);43If(tenp-pthread_create(&threado,NULL,threadl,NULL)!«0)44prtntf("createthreadlf
21、atledn);4Selse46prtntf("createthreadlsucces$n);4748If(tenp=pthread_create(&thread1>NULL>thread2>NULL)HO)49|Drtntfl“crertefriledlfT:50elseSIprtntf("createthread?succes$n');521S4voidthread_watt(votd)49,1-854%活动C转连星期三00:0Btfccq削jcccqaqwhtud5adiIne:-/jt揩文件F)腐辑(E)杳看V)搜索6)性瑞E蒂助(
22、城SIprlntf(-crwt»thread!iuccesin*);S)5354veldthreadwltfvoid)H(56If(thr*ad6l«fl)5,15gpthre»d_jotn(thre*d8.NULL);59prtntf('thr«dltndn'R);g)“if(threadLJwO)依(63pthrw审d_jol为(thrwadl,MULl);64printf(thread?enrln'J;旺)666763intnain()於I76pthre&dFiuttx_intt(Snut,NiiLi);7tprtntf("Idnain,cieatingthreadn");72thread_(reate);73pr
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年中考政治考前冲刺押题试卷及答案(九)
- 2026年事业单位招聘考试计算机理论知识考试试卷及答案(五)
- 构造柱模板施工工艺流程
- 一氧化碳运输安全规程
- 2026年测绘工高级工(三级)职业技能鉴定模拟试题
- 铁路工程管理手册
- 2026年水产批发市场食品储存培训方案
- 振动作业职业健康监护制度
- 医学26年:戈谢病诊疗进展解读 查房课件
- 医学26年:慢性胆囊炎诊疗要点 查房课件
- 2026年同等学力申硕英语模拟卷
- 摩根士丹利 -半导体:中国AI加速器-谁有望胜出 China's AI Accelerators – Who's Poised to Win
- 2026辽宁沈阳汽车集团有限公司所属企业华亿安(沈阳)置业有限公司下属子公司招聘5人笔试历年参考题库附带答案详解
- 2026年公路养护工职业技能考试题库(新版)
- 2026中国广播影视出版社有限公司高校毕业生招聘3人备考题库含答案详解(完整版)
- 宜宾市筠连县国资国企系统2026年春季公开招聘管理培训生农业考试模拟试题及答案解析
- 2026年福建南平市八年级地生会考考试真题及答案
- 2025-2030非洲智能汽车零部件行业市场供需理解及投资潜力规划分析研究报告
- 2026季华实验室管理部门招聘3人(广东)建设笔试模拟试题及答案解析
- 北京市大兴区瀛海镇人民政府招聘劳务派遣4人考试参考试题及答案解析
- 湖南省衡阳市南岳区事业单位考试历年真题
评论
0/150
提交评论