欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    java实验多线程开发.docx

    • 资源ID:35019522       资源大小:27.66KB        全文页数:7页
    • 资源格式: DOCX        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    java实验多线程开发.docx

    实验名称第 5次实验多线程开发一、实验目的.掌握所线程的概念;1 .掌握线程实现的两种方法;3、掌握对象锁和线程同步。二、实验内容1、编写程序,创建5个线程,分别输出5个线程的名字,用继承Thread类和实现Runnable 接口的方法来实现。2、以车站售票为例研究资源共享的问题。假设两个窗口同时出售一次列车的车票,车票就 是共享资源,两个窗口就是两个线程。3、编写程序,实现线程间的同步控制。假设有一个生产者(Producer), 一个消费者 (Consumer)。生产者产生0-9的整数,将它们存储在盒子(Box)对象中并打印出这些数。消费者从盒子中取出这些整数并将其也打印出来。同时要求生产者产生一个数字,消费者 取得一个数字。三、实验过程1、编写程序,创建5个线程,分别输出5个线程的名字,用继承Thread类和实现Runnable 接口的方法来实现。(1)代码设计方法一:public class ThreadDemo extends Thread public ThreadDemo(String name) super(name);)public void run() for(int i=0;i<100;i+) /System.out.printin(getName()+"="+i);try (Thread.steep(int)(Math.random()*100);catch(InterruptedException e)System.out. printin(getName() + "结束");)public staticThread tlThread t2Thread t3Thread t4Thread t5void main(String args) =new ThreadDemo(“线程 A"); =new ThreadDemo("线程 B"); =new ThreadDemo(“线程 C"); =new ThreadDemo,线程 D"); =new ThreadDemo(“线程 E");tl.start();t2.start();t3.start();t4.start();)方法二:publict5.start();class RunnableDemo implements Runnable public void run() for(int i=0;i<100;i+) /System.out.printIn(Thread.currentThread().getName()+"="+i);try Thread. steep( (int) (Math. rando/n( )*100);catch(InterruptedException e) System.out. println(Thread. currentThreadO .getName() + ”结束");public static void main(String args) RunnableDemo target=new RunnableDemo。; tl.start();ThreadThreadThreadThreadThreadtlt2t3t4t5newnewnewnewnewThreadDemo(“线程 A"); ThreadDemo(“线程 B“); ThreadDemo,线程 Cn); ThreadDemo(“线程 D“); ThreadDemo(“线程 E");t2.start();t3.start();t4.start();t5.start();)(2)运行结果方法一:而一 Problems <terminated: 线程C结束 线程B结束 线程E结束 线程A结束 线程D结束方法二:<terminated>RRRR-R 吐口吐口吐口吐口吐口 登乡乡 D E c A B 口王口王口王口王口王 L 二/ L H 一了 、二K、二K 二B、二K '二K 线线线线线RRRR-R 吐口吐口吐口吐口吐口 登乡乡 D E c A B 口王口王口王口王口王 L 二/ L H 一了 、二K、二K 二B、二K '二K 线线线线线2、以车站售票为例研究资源共享的问题。假设两个窗口同时出售一次列车的车票,车票就 是共享资源,两个窗口就是两个线程。(1)代码设计public class Tickets private int amount=100; public int getAmount() return amount;public void saleone() amount=amount-l;)public class WinThread extends Thread Tickets tickets=null;int n=0;public WinThread(Tickets ticketsString name) super(name);this.tickets=tickets;public void run() while(true) if(tickets.getAmount()>0) tickets . saleone(); n=n+l;System.out.printIn(getName()+":"+n); try Thread.steep(50);catch(InterruptedException e) else Sy stem. out. print In (getName() + "已无票”); break; )public class TicketsTest public static void main(String args) Tickets tick=new Tickets();Thread winl=new WinThread(tick,"窗口!”);Thread win2=new WinThread(tickJ窗口2"); winl.start();win2.start();)(2)运行结果terminate言匚1:1言匚2:1 宣匚1:2盅匚2:2宙匚1:3宙匚2:3言匚1:4宣匚2:4支匚1:5窗匚2:5 窗匚1:6言二 2:6言匚1:7 言匚2:7盅匚1:8*2:8宙匚1:9言二2:9 $31:10变二2:10 窗匚1:11定二2:11 $31:12言二2:12直二1:13宣二 2:13宣匚1:14定二2:14言二 1:15宣二 2:15 克匚1:16定二2:16定二2:17言匚1:17言二2:18宣二1:18 «zl:19宣匚2:19定二1:20官二 2:20 或二1:21terminate言匚1:1言匚2:1 宣匚1:2盅匚2:2宙匚1:3宙匚2:3言匚1:4宣匚2:4支匚1:5窗匚2:5 窗匚1:6言二 2:6言匚1:7 言匚2:7盅匚1:8*2:8宙匚1:9言二2:9 $31:10变二2:10 窗匚1:11定二2:11 $31:12言二2:12直二1:13宣二 2:13宣匚1:14定二2:14言二 1:15宣二 2:15 克匚1:16定二2:16定二2:17言匚1:17言二2:18宣二1:18 «zl:19宣匚2:19定二1:20官二 2:20 或二1:21$32:21 官二 1:22 定二 2:22 $31:23 童二 2:23 $31:24 童二 2:24 宙二 1:25 言二 2:25 童二 2:26 *1:26 11:27 官二 2:27 定二 1:28 官二 2:28 *1:29 言二 2:29 $zl:30 宣二 2:30 Wzl:31 官二 2:31 $zl:32 W=2:32 友二 1:33 定二 2:33 $z2:34 童二 1:34 宦二 2:35 $zl:35 言二 2:36 Wol:36 值二 2:37 支二 1:37 $z2:38 发二 1:38 WD1:39 $z2:39 窗二 1:40 官二2:40 童二工:41夜二 2:41 $zl:42宣二 2:42 $zl:43 «z2:43夜二 1:44 童二 2:44$zl:45 夜二 2:455zl:46 宣二 2:46 $zl:47夜二 2:47 931:48宣二 2:48 $zl:49夜二 2:49 窗二 1:50童二 2:50*1:51« 3 2:51 窗二 1:52官二2三天亲 窗二1己无宗3、编写程序,实现线程间的同步控制。假设有一个生产者(Producer), 一个消费者 (Consumer)。生产者产生09的整数,将它们存储在盒子(Box)对象中并打印出这些数。消费者从盒子中取出这些整数并将其也打印出来。同时要求生产者产生一个数字,消费者 取得一个数字。(1)代码设计public class Box private int data;public synchronized void put(int value) data=value;public synchronized int get() return data;)public class Producer extends Thread private Box box;public Producer(Box c) box=c;)public void run() for(int i=0;i<10;i+) box.put(i);System.out.printIn("Producer"+"put:”+i);try (sLeep( (int) (Math .rando/w( )*100); catch(InterruptedException e) ) )public class ProducerConsumerTest public static void main(String args) Box c=new Box();Producer pl=new Producer(c);Consumer cl=new Consumer(c);pl.start(); cl.start();)public class Consumer extends Thread private Box box;public Consumer(Box c)box=c;)public void run()int value=0;for(int i=0;i<10;i+) value=box.get(); System.out.println("Consumer"+"get:"+value); trys£eep(int)(Math.random()*100);catch (InterruptedException e) )public class Box2 private int data; private boolean available=false;public synchronized void put(int value) while(available=true) try wait();catch(InterruptedException e) data=value;available=true; notifyAll(); ) public synchronized int get() while(available=false) try wait();catch(InterruptedException e) available=false;notifyAll(); return data; (2)运行结果 <terminated> Pro Consumerget:0 Producerput:0 Producerput:1 Consumerget:1 Producerput:2 Producerput:3 Consumerget:3 Consumerget:3 Consumerget:3 Producerput:4 Producerput:5 Producerput:6 Consumerget:6 Producerput:7 Consumerget:7 Producerput:8 Consumerget:8 Consumerget:8 Consumerget:8 Producerput:9四、实验小结本次实验我掌握了所线程的概念;掌握了线程实现的两种方法;掌握了对象锁和线程 同步。

    注意事项

    本文(java实验多线程开发.docx)为本站会员(太**)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开