最新c++程序设计读后感 c程序设计语言读后感(四篇).docx
上传人:挥剑****天涯 上传时间:2024-09-10 格式:DOCX 页数:18 大小:46KB 金币:10 举报 版权申诉
预览加载中,请您耐心等待几秒...

最新c++程序设计读后感 c程序设计语言读后感(四篇).docx

最新c++程序设计读后感c程序设计语言读后感(四篇).docx

预览

免费试读已结束,剩余 8 页请下载文档后查看

10 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

最新c++程序设计读后感c程序设计语言读后感(四篇)当认真看完一部作品后,相信大家的收获肯定不少吧,是时候写一篇读后感好好记录一下了。读后感书写有哪些格式要求呢?怎样才能写一篇优秀的读后感呢?接下来我就给大家介绍一些优秀的读后感范文,我们一起来看一看吧,希望对大家有所帮助。c++程序设计读后感c程序设计语言读后感篇一转载▼标签:itc++本身并没有提供任何多线程机制,但是在windows下,我们可以调用sdkwin32api来编写多线程的程序,下面就此简单的讲一下:创建线程的函数handlecreatethread(lpsecurity_attributeslpthreadattributes,//sdsize_tdwstacksize,//initialstacksizelpthread_start_routinelpstartaddress,//threadfunctionlpvoidlpparameter,//threadargumentdworddwcreationflags,//creationoptionlpdwordlpthreadid//threadidentifier);在这里我们只用到了第三个和第四个参数,第三个参数传递了一个函数的地址,也是我们要指定的新的线程,第四个参数是传给新线程的参数指针。eg1:#include#includeusingnamespacestd;dwordwinapifun(lpvoidlpparamter){while(1){cout<<“fundisplay!”<}intmain(){handlehthread=createthread(null,0,fun,null,0,null);closehandle(hthread);while(1){cout<<“maindisplay!”<return0;}我们可以看到主线程(main函数)和我们自己的线程(fun函数)是随机地交替执行的,但是两个线程输出太快,使我们很难看清楚,我们可以使用函数voidsleep(dworddwmilliseconds//sleeptime);来暂停线程的执行,dwmilliseconds表示千分之一秒,所以sleep(1000);表示暂停1秒eg2:#include#includeusingnamespacestd;dwordwinapifun(lpvoidlpparamter){while(1){cout<<“fundisplay!”<}intmain(){handlehthread=createthread(null,0,fun,null,0,null);closehandle(hthread);while(1){cout<<“maindisplay!”<return0;}执行上述代码,这次我们可以清楚地看到在屏幕上交错地输出fundisplay!和maindisplay!,我们发现这两个函数确实是并发运行的,细心的读者可能会发现我们的程序是每当fun函数和main函数输出内容后就会输出换行,但是我们看到的确是有的时候程序输出换行了,有的时候确没有输出换行,甚至有的时候是输出两个换行。这是怎么回事?下面我们把程序改一下看看:eg3:#include#includeusingnamespacestd;dwordwinapifun(lpvoidlpparamter){while(1){cout<<“fundisplay!n”;sleep(1000);}}intmain(){handlehthread=createthread(null,0,fun,null,0,null);closehandle(hthread);while(1){cout<<“maindisplay!n”;sleep(2000);}return0;}我们再次运行这个程序,我们发现这时候正如我们预期的,正确地输出了我们想要输出的内容并且格式也是正确的。下面我就来讲一下此前我们的程序为什么没有正确的运行。多线程的程序时并发地运行的,多个线程之间如果公用了一些资源的话,我们并不能保证这些资源都能正确地被利用,因为这个时候资源并不是独占的,举个例子吧:eg4:加入有一个资源inta=3有一个线程函数selfadd()该函数是使a+=a;又有一个线程函数selfsub()该函数是使a-=a;我们假设上面两个线程正在并发欲行,如果selfadd在执行的时候,我们的目的是想让a编程6,但此时selfsub得到了运行的机会,所以a变成了0,等到selfadd的到执行的机会后,a+=a,但是此时a确是0,并没有如我们所预期的那样的到6,我们回到前面eg2,在这里,我们可以把屏幕看成是一个资源,这个资源被两个