版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年某物业国企单位招聘外包制人员备考题库及答案详解一套
- 北京大学2026年度应届毕业生公开招聘备考题库(一)参考答案详解
- 兴山县2026年“招才兴业”事业单位人才引进公开招聘备考题库华中农业大学站有答案详解
- 2026年新乡市诚城卓人学校教师招聘备考题库完整答案详解
- 企业质量管理体系制度
- 2026年西安鑫垚陶瓷复合材料股份有限公司招聘备考题库及一套参考答案详解
- 2026年衡东县城乡发展投资集团有限公司公开招聘工作人员21人备考题库及一套参考答案详解
- 天水公开招聘2026届协议培养师范毕业生141人备考题库及参考答案详解1套
- 2026年青海两弹一星干部学院招聘备考题库及答案详解一套
- 2026年韶关学院招聘备考题库附答案详解
- 2026届北京东城55中高一数学第一学期期末质量检测试题含解析
- 金瓶梅课件教学
- 评估机构安全管理制度
- 杭州民乐团管理制度
- 校外配餐入校管理制度
- 寺庙信息服务管理制度
- 交通运输信息化标准体系
- 财务合规审查实施方案计划
- 移动通信基站设备安装培训教材
- 2024-2025学年云南省昆明市盘龙区高二(上)期末数学试卷(含答案)
- 临床成人失禁相关性皮炎的预防与护理团体标准解读
评论
0/150
提交评论