java实验报告多线程异常处理.doc

java实验报告多线程异常处理.doc

ID:49768058

大小:281.00 KB

页数:11页

时间:2020-03-04

java实验报告多线程异常处理.doc_第1页
java实验报告多线程异常处理.doc_第2页
java实验报告多线程异常处理.doc_第3页
java实验报告多线程异常处理.doc_第4页
java实验报告多线程异常处理.doc_第5页
资源描述:

《java实验报告多线程异常处理.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、信息工程学院实验报告的内容与格式按任课教师的要求书写。Java程序设计实习报告多线程异常处理1.实验目的(1)掌握Java的异常处理机制及相关实现方法能够在程序设计中熟练运用异常及相关类及对象;(2)掌握Java多线程的概念和实现方法;(3)掌握Java多线程的同步问题;2.实验内容实验题1创建两个线程,一个线程打印“A”,另一个线程打印“B”,比如ABBABAABBA….主要代码:packagepackage1;publicclassTestThread{/***@paramargs*/publicstaticvoidmain(String[]args){//TODO

2、Auto-generatedmethodstubPrintoutA_Print=newPrintout('A');PrintoutB_Print=newPrintout('B');A_Print.start();B_Print.start();}}packagepackage1;publicclassPrintoutextendsThread{publiccharout;Printout(chartemp){out=temp;}publicvoidrun(){for(inti=0;i<5;i++){System.out.print(out);}}}运行结果:实验题2假设

3、有火车票1000张,创建10个线程模拟10个售票点,每个售票点100毫秒买一张票。打印出售票过程,注意使用synchronized确保同一张票只能卖出一次。输出格式如下:第4售票点卖出第100张票第2售票点卖出第101张票……主要代码:packagepackage2;publicclassSellTicketextendsThread{intSellnum;staticintTicketnum=0;SellTicket(intindex){Sellnum=index;}publicvoidrun(){while(true){synchronized(this){if(T

4、icketnum<1000){Ticketnum++;System.out.println("第"+Sellnum+"售票点卖出第"+Ticketnum+"张票");//return1;}else{break;}try{Thread.sleep(500);}catch(InterruptedExceptione){}}}}}运行结果:实验题3假设某家银行,它可接受顾客的汇款,每做一次汇款,便可计算出汇款的总额。现有两个顾客,每人都分3次,每次100元将钱到入。试编写一个程序,模拟实际作业。程序如下:classCBank{privatestaticintsum=0;pub

5、licstaticvoidadd(intn){inttmp=sum;tmp=tmp+n;//累加汇款总额try{Thread.sleep((int)(10000*Math.random()));//小睡几秒钟}catch(InterruptedExceptione){}sum=tmp;System.out.println("sum="+sum);}}classCCustomerextendsThread//CCustomer类,继承自Thread类{publicvoidrun(){//run()methodfor(inti=1;i<=3;i++)CBank.add(10

6、0);//将100元分三次汇入}}publicclassEx6_1{publicstaticvoidmain(Stringargs[]){CCustomerc1=newCCustomer();CCustomerc2=newCCustomer();c1.start();c2.start();}}[基本要求]运行程序5次,观察每次运行结果是否相同。运行结果:结果1结果2结果3结果4结果5[思考问题]程序运行结果每次是否相同,运行时间是否相同,为什么?答:在add()函数前加synchronized关键字。②程序中为什么要使用异常处理?答:程序调用了sleep()函数,可能被

7、中断,产生异常。实验题4在程序中主动产生一个ArithmeticException类型被0除的异常,并用catch语句捕获这个异常。最后通过ArithmeticException类的对象e的方法getMessage给出异常的具体类型并显示出来。主要代码:packagepackage4;publicclassEX_4_4{/***@paramargs*/publicstaticvoidmain(String[]args){//TODOAuto-generatedmethodstubintup=1;intdown=0;intresult=0;

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

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

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