一个多线程的windows控制台应用程序

一个多线程的windows控制台应用程序

ID:33453759

大小:1.97 MB

页数:9页

时间:2019-02-26

一个多线程的windows控制台应用程序_第1页
一个多线程的windows控制台应用程序_第2页
一个多线程的windows控制台应用程序_第3页
一个多线程的windows控制台应用程序_第4页
一个多线程的windows控制台应用程序_第5页
资源描述:

《一个多线程的windows控制台应用程序》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、一个多线程的windows控制台应用程序一、要求:编写一个单进程、多线程的windows控制台应用程序。二、平台:WindowXPC#三、内容:每个进程都有分配给它的一个或多个线程。线程是一个程序的执行部分。操作系统把极短的一段时间轮流分配给多个线程。时间段的长度依赖于操作系统和处理器。每个进程都开始一个默认的线程,但是能从它的线程池中创建一个新的线程。线程是允许进行并行计算的一个抽象概念:在一个线程完成计算任务的同时,另一个线程可以对图像进行更新,两个线程可同时处理同一个进程发出的两个网络请求。如图所示,选择操作:1、创建和启动一个线程。在一个进程中同时教和运行两个线程,并且

2、可以不需要停止或者释放一个线程。相关代码及其解释:publicclassThreading1:Object{publicstaticvoidstartup(){//创建一个线程数组Thread[]threads=newThread[2];for(intcount=0;count

3、nt<=9;count++)Console.Write(count+"");}}输出结果:这里通过new方法创建了两个线程,然后使用start()方法来启动线程,两个线程的作用是:两个线程同时从1数到9,并将结果打印出来。运行上面的程序代码时,可能会在控制台上输出多种不同的结果。从123456789123456789到112233445566778899或121233445566778989在内的各种情况都是可能出现的,输出结果可能与操作系统的调度方式有关。1、停止线程。当创建一个线程后,可以通过多种属性方法判断该线程是否处于活动状态,启动和停止一个线程等。相关代码及其解释:p

4、ublicclassMyAlpha{//下面创建的方法是在线程启动的时候的时候调用publicvoidBeta(){while(true){Console.WriteLine("MyAlpha.Betaisrunninginitsownthread.");}}}publicclassSimple{publicstaticintStop(){Console.WriteLine("ThreadStart/Stop/Join");MyAlphaTestAlpha=newMyAlpha();//创建一个线程对象ThreadMyThread=newThread(newThreadStar

5、t(TestAlpha.Beta));//开起一个线程MyThread.Start();while(!MyThread.IsAlive);//停止主线程9Thread.Sleep(1);//停止线程MyThread.Abort();//加入一个线程MyThread.Join();Console.WriteLine();Console.WriteLine("TestAlpha.Betahasfinished");//进行异常处理try{Console.WriteLine("TrytorestarttheTestAlpha.Betathread");MyThread.Start()

6、;}catch(ThreadStateException){Console.WriteLine("ThreadStateExceptiontryingtorestartTestAlpha.Beta.");Console.WriteLine("Expectedsinceabortedthreadscannotberestarted.");}return0;}}输出结果:1、进程的同步为了保证数据结构的稳定,必须通过使用锁来调整两个线程的操作顺序。这里通过对引用的对象申请一个锁,一旦一段程序获得该锁的控制权后,就可以保证只有它获得了这个锁并能够对该对象进行操作。同样,利用这种锁,一

7、个线程可以一直处于等待状态,直到有能够唤醒他的信号通过变量传来为止。相关代码及其解释:publicclassMonitor1{publicstaticvoidSynchronize(){intresult=0;//ResultinitializedtosaythereisnoerrorCellcell=newCell();CellProdprod=newCellProd(cell,20);CellConscons=newCellCons(cell,20);Threadproducer=new

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。