版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二四万科物业应急处理合同标准版3篇
- 二零二五版家电行业电商平台合作销售合同范本2篇
- 2025年度环保建筑材料代理销售合同3篇
- 2023 年常州市-经开先锋-职业技能大赛 工业机器人系统运维员理论题库
- 二零二五按揭房产离婚财产分割协议范本及子女抚养细则3篇
- 二零二五年酒店集团年度品牌形象合作合同范本3篇
- 二零二四年农业园区食堂泔水处理与生态循环承包合同3篇
- 2025年商业中心项目PPP合作协议
- 二零二五版“能源互联网”股权代持合同案例分析3篇
- 个性化收养协议规范格式(2024)版B版
- C及C++程序设计课件
- 带状疱疹护理查房
- 公路路基路面现场测试随机选点记录
- 平衡计分卡-化战略为行动
- 国家自然科学基金(NSFC)申请书样本
- 幼儿教师干预幼儿同伴冲突的行为研究 论文
- 湖南省省级温室气体排放清单土地利用变化和林业部分
- 材料设备验收管理流程图
- 培训机构消防安全承诺书范文(通用5篇)
- (完整版)建筑业10项新技术(2017年最新版)
- 第8期监理月报(江苏版)
评论
0/150
提交评论