多线程异常处理网上的

多线程异常处理网上的

ID:38663773

大小:163.00 KB

页数:9页

时间:2019-06-17

多线程异常处理网上的_第1页
多线程异常处理网上的_第2页
多线程异常处理网上的_第3页
多线程异常处理网上的_第4页
多线程异常处理网上的_第5页
资源描述:

《多线程异常处理网上的》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、实验四多线程异常处理1.实验目的(1)掌握Java的异常处理机制及相关实现方法能够在程序设计中熟练运用异常及相关类及对象;(2)掌握Java多线程的概念和实现方法;(3)掌握Java多线程的同步问题;2.实验内容实验题1创建两个线程,一个线程打印“A”,另一个线程打印“B”,比如ABBABAABBA….实验代码:packagexuguigui;publicclassSimpleThreadextendsThread{publicSimpleThread(Stringname){setName(name);}publicvoidrun(){inti=0;while(i

2、++<5){try{System.out.print(getName()+"");//Thread.sleep(1000);}catch(Exceptione){e.printStackTrace();}}}}packagexuguigui;publicclassXu{publicstaticvoidmain(String[]args){SimpleThreadthread1=newSimpleThread("A");SimpleThreadthread2=newSimpleThread("B");thread1.start();thread2.start();}}

3、程序运行结果:9实验题2假设有火车票1000张,创建10个线程模拟10个售票点,每个售票点100毫秒买一张票。打印出售票过程,注意使用synchronized确保同一张票只能卖出一次。输出格式如下:第4售票点卖出第100张票第2售票点卖出第101张票……程序代码:packagexx;publicclasstestxxextendsThread{intticket=200;Stringname="";publicvoidrun(){while(true){synchronized(name){if(ticket<=0)break;System.out.println(

4、"第"+Thread.currentThread().getName()+"售票点卖出第"+ticket--+"张票");try{Thread.sleep(100);}catch(InterruptedExceptione){e.printStackTrace();}}}}}packagexx;publicclassTicket{publicstaticvoidmain(String[]args){testxxt=newtestxx();newThread(t,"1").start();newThread(t,"2").start();newThread(t,"3"

5、).start();newThread(t,"4").start();newThread(t,"5").start();9newThread(t,"6").start();newThread(t,"7").start();newThread(t,"8").start();newThread(t,"9").start();newThread(t,"10").start();}}程序运行结果:此题主要考察synchronized()同步代码块的理解和使用。在程序中执行到synchronized设定的同步化区块时锁定当前对象,这样就没有其他线程可以执行这个被同步化的区块了

6、。另,代码中调用了Thread类中的currentThread()方法,返回对当前正在执行的线程对象的引用。实验题3假设某家银行,它可接受顾客的汇款,每做一次汇款,便可计算出汇款的总额。现有两个顾客,每人都分3次,每次100元将钱到入。试编写一个程序,模拟实际作业。程序如下:classCBank{privatestaticintsum=0;publicstaticvoidadd(intn){inttmp=sum;tmp=tmp+n;//累加汇款总额try{Thread.sleep((int)(10000*Math.random()));//小睡几秒钟}catch(I

7、nterruptedExceptione){}9sum=tmp;System.out.println("sum="+sum);}}classCCustomerextendsThread//CCustomer类,继承自Thread类{publicvoidrun(){//run()methodfor(inti=1;i<=3;i++)CBank.add(100);//将100元分三次汇入}}publicclassEx6_1{publicstaticvoidmain(Stringargs[]){CCustomerc1=newCCustomer();CCustomerc2

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

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

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