第一范文网 - 专业文章范例文档资料分享平台

java实验报告(实验四)

来源:用户分享 时间:2025/9/21 4:26:41 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

北 京 林 业 大 学

2013 学年— 2014 学年第 2学期 Java程序设计基础实验

报告书

专 业: 电子 班 级: 11-2 姓 名: 王云飞 学 号: 101114110 实验地点: 计算机中心 任课教师: 黄儒乐 实验题目:多线程的使用

实验环境: Windows2000/XP;局域网 实验要求:

1. 对所有实验内容中涉及到的命令均要亲自实践,对照实验指导书进行。 2. 把实验中出现的问题以及最后解决的情况反馈到实验报告中。 3. 程序作业的源代码要求反馈到实验报告中。

实验内容:

1.线程的状态

按模板要求,将【代码1】~【代码10】替换为Java程序代码。

ThreadExample.java

class Tortoise extends Thread {

int sleepTime=0,liveLength=0;

Tortoise(int sleepTime,String name,int liveLength) {

this.sleepTime=sleepTime; this.liveLength=liveLength;

【代码1】 // 设置线程的名字为name }

public void run() {

while(true) {

liveLength--;

System.out.printf(\ try {

【代码2】 // 让线程调用 sleep方法进入中断状态,sleepTime毫秒后线程

// 重新排队,等待CPU资源

}

catch(InterruptedException e) { }

if(liveLength<=0) {

System.out.printf(getName()+\进入死亡状态\\n\ 【代码3】 // 结束run方法的语句 } } } }

class Rabbit extends Thread {

int sleepTime=0,liveLength;

Rabbit(int sleepTime,String name,int liveLength) {

this.sleepTime=sleepTime; this.liveLength=liveLength;

【代码4】 // 设置线程的名字为name }

public void run() {

while(true) {

liveLength--; System.out.printf(\ try {

【代码5】 // 让线程调用 sleep方法进入中断状态,sleepTime毫秒后

// 线程重新排队,等待CPU资源

}

catch(InterruptedException e) { }

if(liveLength<=0) {

System.out.printf(getName()+\进入死亡状态\\n\ 【代码6】 // 结束run方法的语句 } }

} }

public class ThreadExample {

public static void main(String args[ ]) {

Rabbit rabit;

rabit=【代码7】 // 新建线程rabit Tortoise tortoise;

tortoise=【代码8】 // 新建线程tortoise 【代码9】 // 启动线程tortoise 【代码10】 // 启动线程rabit } }

2.使用Runnable方法

按模板要求,将【代码1】~【代码10】替换为Java程序代码。

BankExample.java

class Bank implements Runnable {

【代码1】 // 声明一个int型变量money,初值为100 Thread zhang,keven; Bank() {

【代码2】 // 创建zhang,Bank对象为zhang的目标对象 【代码3】 // 设置zhang线程的名字为“会计”

【代码4】 // 创建keven,Bank对象为keven的目标对象 【代码5】 // 设置keven线程的名字为“出纳” }

public void run() {

【代码6】 // 声明一个int类型变量i,初值为0 while(true) {

if(【代码7】) // 判断线程zhang是否正在占有CPU资源 { i=i+1;

money=money+1;

System.out.printf(\将money的值改为%d\\t\ System.out.printf(\的局部变量i=%d\\n\ if(i>=6) {

System.out.printf(\线程进入死亡状态\\n\ 【代码8】 // 使得线程zhang进入死亡状态

} try{

Thread.sleep(1000); }

catch(InterruptedException e) { } }

else if(【代码9】) // 判断线程keven是否正在占有CPU资源 { i=i-1;

money=money-1;

System.out.printf(\将money的值改为%d\\t\ System.out.printf(\的局部变量i=%d\\n\ if(i<=-6) {

System.out.printf(\线程进入死亡状态\\n\ 【代码10】 // 使得线程keven进入死亡状态 } try{

Thread.sleep(1000); }

catch(InterruptedException e) { } } } } }

class BankExample {

public static void main(String args[ ]) {

Bank bank=new Bank(); bank.zhang.start(); bank.keven.start(); } }

3. 线程同步实验

分析上面BankExample的输出,是否发现money数据输出有误,请将针对money值得操作写成一个同步方法,解决上述问题。

实验目的:

掌握两种线程创建的方法,掌握线程控制的基本方法。

搜索更多关于: java实验报告(实验四) 的文档
java实验报告(实验四).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c90u7b2f3li667gj1z1qo_1.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top