版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、常州大学怀德学院实验报告 第 5 次实验 实验名称 多线程开发 一、实验目的1掌握所线程的概念;2掌握线程实现的两种方法;3、掌握对象锁和线程同步。二、实验内容1、编写程序,创建5个线程,分别输出5个线程的名字,用继承Thread类和实现Runnable接口的方法来实现。2、以车站售票为例研究资源共享的问题。假设两个窗口同时出售一次列车的车票,车票就是共享资源,两个窗口就是两个线程。3、编写程序,实现线程间的同步控制。假设有一个生产者(Producer),一个消费者(Consumer)。生产者产生09的整数,将它们存储在盒子(Box)对象中并打印出这些数。消费者从盒子中取出这些整数并将其也打印
2、出来。同时要求生产者产生一个数字,消费者取得一个数字。三、实验过程1、编写程序,创建5个线程,分别输出5个线程的名字,用继承Thread类和实现Runnable接口的方法来实现。(1)代码设计方法一:public class ThreadDemo extends Thread public ThreadDemo(String name) super(name);public void run() for(int i=0;i100;i+) /System.out.println(getName()+=+i);try Thread.sleep(int)(Math.random()*100);cat
3、ch(InterruptedException e)System.out.println(getName()+结束);public static void main(String args) Thread t1 = new ThreadDemo(线程 A);Thread t2 = new ThreadDemo(线程 B);Thread t3 = new ThreadDemo(线程 C);Thread t4 = new ThreadDemo(线程 D);Thread t5 = new ThreadDemo(线程 E);t1.start();t2.start();t3.start();t4.sta
4、rt();t5.start();方法二:public class RunnableDemo implements Runnable public void run() for(int i=0;i0) tickets.saleone();n=n+1;System.out.println(getName()+:+n);try Thread.sleep(50);catch(InterruptedException e) else System.out.println(getName()+已无票);break;public class TicketsTest public static void ma
5、in(String args) Tickets tick=new Tickets();Thread win1=new WinThread(tick,窗口1);Thread win2=new WinThread(tick,窗口2);win1.start();win2.start();运行结果3、编写程序,实现线程间的同步控制。假设有一个生产者(Producer),一个消费者(Consumer)。生产者产生09的整数,将它们存储在盒子(Box)对象中并打印出这些数。消费者从盒子中取出这些整数并将其也打印出来。同时要求生产者产生一个数字,消费者取得一个数字。(1) 代码设计public class
6、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;i10;i+) box.put(i);System.out.println(Producer+put:+i);try sleep(int)(Math
7、.random()*100);catch(InterruptedException e) public class ProducerConsumerTest public static void main(String args) Box c=new Box();Producer p1=new Producer(c);Consumer c1=new Consumer(c);p1.start();c1.start();public class Consumer extends Thread private Box box; public Consumer(Box c) box=c; public
8、 void run() int value=0; for(int i=0;i10;i+) value=box.get(); System.out.println(Consumer+get:+value); try sleep(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) t
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 星海人工智能培训指南
- 偏瘫健康宣教
- 消防安全百问百答
- 健康宣教复学方案-1
- 2024-2025学年高中生物第6章从杂交育种到基因工程章末达标测试新人教版必修2
- 2023年会计从业资格考试历年真题
- 2023幼儿教师资格考试结构化面试题
- 2023年甘肃省一级建筑师建筑结构计算建筑面积的规定试题
- 中国(浙江)自由贸易试验区大宗商品资源配置枢纽建设方案
- 2023年广东省公务员录用考试行测真题县级乡镇统一
- 企业编制人员管理办法
- 2025年厦门大学强基计划招生考试数学试题真题(含答案)
- 2025年黑龙江省龙东地区中考化学试卷真题(含标准答案及解析)
- 执法记录仪使用管理试题
- 掘进专业培训课件
- TGXDSL 002-2025 人工智能驱动的工业视觉检测系统技术要求
- 鸿翔角钢检测报告
- 2025风力发电场技术监督规程05风力机技术监督
- 下沙路与12号路提升改造及附属配套工程项目环评报告
- 高强螺栓连接副扭矩系数技术解析
- 监理挂靠公司协议书
评论
0/150
提交评论