欢迎来到天天文库
浏览记录
ID:41560554
大小:63.03 KB
页数:10页
时间:2019-08-27
《C实验多线程开发》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、课程名称:・NET程序设计项目名称:多线程开发姓名:专业:班级:学号:一、实验预习部分I1.软硬件环境:PC—台‘Windows系统、VisualStudiao20102.实验准备内容:(1)进程、线程概念进程:操作系统中正在执行的不同应用程序的一个实例,操作系统分离不同的进程。线程:操作系统分配处理器时间的基本单元,每个线程都维护异常处理程序、优先级和一组系统用于在调度该线程前保存线程上下文结构。(2)创建新工作线程的步骤1、创建一个将在主线程外执行的函数,即类的方法,用于执行新线程的耍执行的逻辑
2、操作。2、在主线程中创建一个Thread的实例,指向步骤(1)屮的函数,女0ThreadnewThread=newThread(anObject.AMethod)。3、调用步骤(2)中创建Thread实例的Start方法,以启动新线程,女IInewThread.Strat()。(3)线程状态Unstarted:未开始状态。线程已创建,但未开始运行。Running:运行状态。线程己启动,正在运行。WaitSleepJoin:组织状态。线程被阻止。注:1、实验预习部分包括实验环境准备和实验所需知识点准备
3、。2、若是单人单组实验,同组成员填无。SuspendRequeated:请求挂起状态。正在请求线程挂起。Suspended:挂起状态。线程已挂起。AbortRequested:请求终止状态。止在请求线程终止。Aborted:销毁状态。终止但尚未停止。StopRequested:请求停止状态。1E在请求线程停止。仅用于内部Stopped:停止状态。线程已停止。(1)线程启动终止挂起唤醒暂停让步加入中断等方法(2)线程同步处理方法使用lock语句同步代码块:lock语句使用lock关键字将语句块标记为临
4、界区,方法是获取给定对象的互斥锁,执行语句,然后释该锁。Lock语句以关键字lock开头,并以一个对象作为参数,在该参数的后面为互斥线程代码块。(3)线程池概念线程池是可以用来在后台执行多个任务的线程集合,这使主线程可以自由地异步执行其他任务。线程池通常用于服务器应用程序。可以一步处理请求而不会占用主线程,也不会延迟后续请求的处理。通具有最大的线程数限制。(4)定时器概念以及执行任务的典型步骤System.Threading.Timer是一种定时器工具,用来在一个后台线程计划执彳亍指定任务。Time
5、r提供以指定的时间间隔执行方法的机制。使Timer线程实现和计划执行下一个任务的典型步骤如下:1•使用TimerCallback委托指定Timer执行的方法。2.创建定时器。二、实验过程记录乙书本P252-例14.2和14.3,实验指导书第七章实验7-7、7-8、usingSystem;usingSystem.Collections・Generic;usingSystem・Linq;usingSystem.Text;usingSystem・Threading;namespaceConsoleAppl
6、ication4{classAccount{privateObjectthisLock=newObject():intbalance;publicAccount(intinitial){balance=initial;}publicvoidwithdraw(objectamount){{if(balancc>二(int)amount){Thread.Sleep(500);balancc=balancc-(int)amount;Console.WriteLineC{0}操…'作AjA成:功
7、。逹余Q额
8、?二⑴",Thread.CurrentThresd.Name,balanee);}else{Console.WriteLine(,z{0}操…’作AjA^ji败召…。逹账?号?余®八O额?不?足A?。逹余CS额?二⑴",Thread.CurrentThresd.Name,balanee);}}}}classTest(staticvoidMain(){Accountacc=newAccount(1000);2注:实验过程记录要包含实验H的、实验原理、实验步骤,页码不够町自行添加。Threadtl=ne
9、wThread(acc.withdraw);tl・Name二"小?明门";Threadt2=newThread(acc.withdraw);t2.Name二"小?红"tl.Start(600);t2.Start(600);Console.ReadKey();}}}cKfile:///c:/documentsandsettings/ad>inistrator/>ydoc额额事usingSystem;usingSystem・Collections.Generic;usi
此文档下载收益归作者所有