java实验报告7
更新时间:2023-12-05 19:20:01 阅读量: 教育文库 文档下载
- java实验报告心得体会推荐度:
- 相关推荐
广东工业大学实验报告
0 学院 0 专业 0 班 学号 姓名 0 成绩评定_______
实验 7 题目 多线程程序 课程名称 Java与面向对象程序设计 一.实验目的
(1)了解Thread类并创建线程 (2)了解Runnable接口并创建线程 (3)学习多线程的同时运行 (4)了解守护线程 (5)了解线程同步
二.实验软件环境
jdk1.6.0_18、windows 7
三.实验内容
(1)编写一个java程序,定义一个ThreadA类继承Thread类,在main()方法中创建ThreadA类的三个实例,执行这些线程
package com.gdut.net.javaoo.class070120; //ThreadA.java
class ThreadA extends Thread {
int count=1; int num;
public ThreadA(int newNum) { }
public void run() { }
public static void main(String args[])
while(true) { }
System.out.println(\线程\计数\count++; if(count==3) break; num=newNum;
System.out.println(\创建线程\
1
广东工业大学实验报告
0 学院 0 专业 0 班 学号 姓名 0 成绩评定_______
实验 7 题目 多线程程序 课程名称 Java与面向对象程序设计 }
{ }
ThreadA a1= new ThreadA(1);//[代码2]创建ThreadA的对象a1,传入参数1 ThreadA a2= new ThreadA(2);//[代码3]创建ThreadA的对象a2,传入参数2 ThreadA a3= new ThreadA(3);//[代码4]创建ThreadA的对象a3,传入参数3 a1.start();//[代码5]调用a1的start()方法,启动线程a1 a2.start();//[代码6]调用a2的start()方法,启动线程a2 a3.start();//[代码7]调用a3的start()方法,启动线程a3 System.out.println(\主方法main()运行结束!\
(2)编写一个java程序,定义一个类ThreadB实现Runnable接口,在main()方法中创建ThreadB类的三个实例,执行这些线程 package com.gdut.net.javaoo.class070120; //ThreadB.java
class ThreadB implements Runnable {
int count=1; int num;
public ThreadB(int newNum) { }
public void run() { }
public static void main(String args[]) {
while(true) { }
System.out.println(\线程\计数\count++; if(count==3) break; num=newNum;
System.out.println(\创建线程\
2
广东工业大学实验报告
0 学院 0 专业 0 班 学号 姓名 0 成绩评定_______
实验 7 题目 多线程程序 课程名称 Java与面向对象程序设计 Thread a1= new Thread(new ThreadB(1));//[代码2]创建Thread的对象a1,传入参数
new ThreadB(1)
Thread a2= new Thread(new ThreadB(2));//[代码3]创建Thread的对象a2,传入参数
new ThreadB(2)
Thread a3= new Thread(new ThreadB(3));//[代码4]创建Thread的对象a3,传入参数
new ThreadB(3) a1.start();//[代码5]调用a1的start()方法,启动线程a1 a2.start();//[代码6]调用a2的start()方法,启动线程a2 a3.start();//[代码7]调用a3的start()方法,启动线程a3 System.out.println(\主方法main()运行结束!\
}
}
(3)程序模拟铁路售票系统
package com.gdut.net.javaoo.class070120; //Sale.java public class Sale { public static void main(String args[]) { SaleTickets t=new SaleTickets();
//[代码1]分别创建4个线程,都传入参数t,再启动它们 Thread t1=new Thread(t); Thread t2=new Thread(t); Thread t3=new Thread(t); Thread t4=new Thread(t); t1.start(); t2.start(); t3.start(); t4.start(); }
}
class SaleTickets implements Runnable { private int tickets=1;
public void run()
3
广东工业大学实验报告
0 学院 0 专业 0 班 学号 姓名 0 成绩评定_______
实验 7 题目 多线程程序 课程名称 Java与面向对象程序设计 \ }
{
while(true) {
if(tickets<=100) {
synchronized(this) {
System.out.println(Thread.currentThread().getName()+\销售第\票
}
}
} else
tickets++; }
Thread.yield();
break;
(4)生成一个守护线程
package com.gdut.net.javaoo.class070120; //TryDaemon.java public class TryDaemon { }
class DaemonThread implements Runnable {
public void run() {
public static void main(String args[]) { }
Thread t=new Thread(new DaemonThread());
t.setDaemon(true);//[代码1]将线程t设置为守护线程,可通过setDaemon(true)设置 t.start();//[代码2]启动线程t
System.out.println(\方法结束\
4
广东工业大学实验报告
0 学院 0 专业 0 班 学号 姓名 0 成绩评定_______
实验 7 题目 多线程程序 课程名称 Java与面向对象程序设计 }
}
while(true)
System.out.println(\线程正在运行\
(5)实现生产者消费者问题
package com.gdut.net.javaoo.class070120; //ThreadSynchtonized.java class common//定义同步资源 {
private char ch;
private boolean available=false; synchronized char get() { }
synchronized void put(char newch) { }
while(available==true)//[代码1]当available变量的值是true的时候,一直挂起线程 try { }
catch(InterruptedException e){} ch=newch; available=true;
notify();//[代码2]唤醒消费者进程
wait();
while(available==false) try { }
catch(InterruptedException e){} available=false; notify(); return ch;
wait();
5
广东工业大学实验报告
0 学院 0 专业 0 班 学号 姓名 0 成绩评定_______
实验 7 题目 多线程程序 课程名称 Java与面向对象程序设计 }
class producer extends Thread//生产者 { private common comm;
public producer(common thiscomm) { comm=thiscomm;
}
public void run() { char c;
for(c='a';c<='e';c++) { System.out.println(\生产的数据是:\ comm.put(c); }
}
}
class consumer extends Thread//消费者 { private common comm;
public consumer(common thiscomm) { comm=thiscomm; }
public void run() { char c;
for(int i=0;i<5;i++) { c=comm.get();
System.out.println(\消费者得到的数据是:\ }
}
}
6
广东工业大学实验报告
0 学院 0 专业 0 班 学号 姓名 0 成绩评定_______
实验 7 题目 多线程程序 课程名称 Java与面向对象程序设计 public class ThreadSynchronized//主程序 { public static void main(String args[]) { common comm=new common(); producer p=new producer(comm); consumer c=new consumer(comm); p.start(); c.start();
}
}
四.实验的结果及分析
7
广东工业大学实验报告
0 学院 0 专业 0 班 学号 姓名 0 成绩评定_______
实验 7 题目 多线程程序 课程名称 Java与面向对象程序设计
五.实验心得体会
通过本章节的学习,对于本章节所要学习的目标都初步达到了。 更好地掌握了java程序的编写以及其思想。
8
正在阅读:
java实验报告712-05
2012年1月考研英语一小作文(标准版)03-15
心经_心经全文注音及解释03-24
2018-信任背摔拓展项目-优秀word范文(3页)01-02
新概念2c期末试卷10-06
中国珠宝品牌加盟现状与发展前景(远程教育毕业论文)05-01
河街乡中小学全面工作量化考核方案04-03
酒店消防安全应急预案03-10
弱势群体04-05
三角函数公式大全09-24
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 实验
- 报告
- java
- 北师大版小学语文四年级上册词语汇总
- 选调生工作总结模板4篇
- 永川煤矿地温问题及防治措施
- 两希与西方文化
- 医保工作各小组和医保相关制度
- 网络传播学彭兰复习提纲
- (标准)资质申请表 - 图文
- 四川大学电子政务期末复习重点
- 《走向高考》2013 高三数学(人教A版)总复习同步练习7-3简单的线性规划问题
- 第3章 资金时间价值与财务估价原理
- 2019-2020高考生物一轮复习第九单元生物与环境第32讲生态系统的能量流动和物质循环练习案新人教版
- 桥梁工程1课程设计
- 2018-2023年中国食醋行业发展趋势预测与投资战略规划研究(目录)
- 脊柱损伤固定搬运术测试题
- 第二章Windows 7操作系统习题
- 2016练闯考语文版九年级语文下册第七单元检测题
- 垂直运输设施解析
- 领导班子思想政治建设经验材料
- 团务知识试题库
- 171内科护理习题@南华 - 血液系统疾病病人护理单元测试题