欢迎来到天天文库
浏览记录
ID:47430418
大小:76.00 KB
页数:6页
时间:2020-01-11
《java实验14 多线程1 - 答案》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、实验十四多线程(一)一、实验时间:姓名:学号:二、实验目的1、了解线程的概念;2、掌握通过Thread类创建线程;3、掌握通过Runnable接口创建多线程;4、掌握多线程的同步;三、知识点1、线程的概念;2、通过Thread类创建线程;3、通过Runnable接口创建多线程;4、同步函数四、实验内容与步骤1、请思考并举例说明为何需要多线程,实现多线程的好处是什么?2、编程实现以下功能:通过主线程控制另外两个线程,这两个线程分别在命令行窗口的左侧和右侧顺序地、一行一行地输出字符串。主线程负责判断输出的行数,当其中任何一个线程输出8行后就结束进程。要求:分别使用Thread的子类和Runa
2、ble接口创建线程。1)使用Thread的子类完成//主线程程序publicclassExample8_3{publicstaticvoidmain(String[]args){Leftleft=newLeft();Rightright=newRight();left.start();right.start();while(true){if(left.n==8
3、
4、right.n==8){System.exit(0);}}}}//左边线程publicclassLeftextendsThread{intn=0;publicvoidrun(){while(true){n++;System.ou
5、t.printf("%s","我在左面写字");try{sleep((int)(Math.random()*100)+100);}catch(InterruptedExceptione){}}}}//右边线程publicclassRightextendsThread{intn=0;publicvoidrun(){while(true){n++;System.out.printf("%40s","我在右面写字");try{sleep((int)(Math.random()*100)+100);}catch(InterruptedExceptione){}}}}2)Runable接口
6、创建线程//主线程程序publicclassExample8_4{publicstaticvoidmain(String[]args){Left1l1=newLeft1();newThread(l1).start();Right1r1=newRight1();newThread(r1).start();while(true){if(l1.n==8
7、
8、r1.n==8){System.exit(0);}}}}//左边线程publicclassLeft1implementsRunnable{intn=0;@Overridepublicvoidrun(){//TODOAuto-generated
9、methodstubwhile(true){n++;System.out.printf("%s","我在左面写字");try{Thread.sleep((int)(Math.random()*100)+100);}catch(InterruptedExceptione){}}}}//右边线程publicclassRight1implementsRunnable{intn=0;@Overridepublicvoidrun(){//TODOAuto-generatedmethodstubwhile(true){n++;System.out.printf("%40s","我在右面写字"
10、);try{Thread.sleep((int)(Math.random()*100)+100);}catch(InterruptedExceptione){}}}}3、编程模拟四个售票进程共同出售100张火车票,要保证线程安全。publicclassThreadTestimplementsRunnable{privateinttickets=100;@Overridepublicvoidrun(){while(true)sale();}publicsynchronizedvoidsale(){if(tickets>0){System.out.println(Thread.current
11、Thread().getName()+"issalingticket"+tickets--);}}}publicclassThreadDemo{publicstaticvoidmain(String[]args){//TODOAuto-generatedmethodstubeThreadTestt=newThreadTest();newThread(t).start();newThread(t).start();newThread(
此文档下载收益归作者所有