全文预览

操作系统实验报告记录理解Linux下进程和线程的创建并发执行过程。

上传者:qnrdwb |  格式:doc  |  页数:8 |  大小:2002KB

文档介绍
nprocess.\n");pthread_join(id,NULL);return(0);}3、编译和运行编译此程序:gccexample1.c-lpthread-oexample1-lpthread:使用线程库运行example1,得到如下结果:Thisisthemainprocess.Thisisapthread.Thisisthemainprocess.Thisisthemainprocess.Thisisapthread.Thisisapthread. 再次运行,可能得到如下结果:Thisisapthread.Thisisthemainprocess.Thisisapthread.Thisisthemainprocess.Thisisapthread.Thisisthemainprocess.编辑过程如图所示:执行如图所示:实验总结:在实验中很多粗心造成的问题,比如指令输错字母,代码写错字母,没有注意是否需要空格等。通过课堂的理论知识学习和实验课的上机实验,让我更能理解操作系统的知识。4、思考(1)程序运行后,进程thread中有几个线程存在?3个(2)为什么前后两次运行结果不一样?单核的cpu在处理多线程时每次只能执行一跳指令,也就是说无论你的程序有多少个线程,每一时刻执行的也只是一个线程里的代码,cpu会轮流给每个线程分配时间片,时间片分配到哪个线程头上,哪个线程里的代码就执行。但是多核cpu就不一样了,他可以同时执行多个线程里的代码,这才是真正的“多线程”。所以你那段程序,在单核的电脑上跑应该是没有问题的,但是在多核cpu的电脑上出现的结果就会有很大的随机性。5、程序的扩展试在本程序中再添加一个或多个其他线程,观测运行结果,充分理解多线程的含义。多添加一个线程,将会多一行Thisisapthread.和Thisisthemainprocess.结果如图所示:

收藏

分享

举报
下载此文档