1、实验要求:1. 对所有实验内容中涉及到的命令均要亲自实践,对照实验指导书进行。2. 把实验中出现的问题以及最后解决的情况反馈到实验报告中。3. 程序作业的源代码要求反馈到实验报告中。实验内容:1线程的状态按模板要求,将【代码1】【代码10】替换为Java程序代码。ThreadExample.javaclass Tortoise extends Thread int sleepTime=0,liveLength=0; Tortoise(int sleepTime,String name,int liveLength) this.sleepTime=sleepTime; this.liveLeng
2、th=liveLength; 【代码1】 / 设置线程的名字为name public void run() while(true) liveLength-; System.out.printf(); try 【代码2】 / 让线程调用 sleep方法进入中断状态,sleepTime毫秒后线程/ 重新排队,等待CPU资源 catch(InterruptedException e) if(liveLength=6)%s线程进入死亡状态n,zhang.getName(); 【代码8】 / 使得线程zhang进入死亡状态 try Thread.sleep(1000); else if(【代码9】) /
3、 判断线程keven是否正在占有CPU资源 i=i-1; money=money-1;,keven.getName(),money);,keven.getName(),i); if(i=6,但是运行中money值一直给到110,远超过循环要实现的值,处理多线程时,当两个或多个线程同时访问同一个变量并且一个线程需要修改这个变量,可以讲一个方法用synchronized修饰,这样该方法在一个线程适合使用他时,别的线程就必须等待直到前一个使用完。在我的实验中,在cmd中运行有如下提示,但能正常运行。 、在网上查找后认为这应该是我使用Stop()方法引起的。并且同时发现老师给出模板里都是使用“System.out.printf(getName()+)”,但我在自己使用的电脑不是和教材配套的JRE和JDK,没次把模板复制过去,这些显示iyuju都无法通过,必须改成System.out.print(进入死亡状态+getName()+)此类语句形式,也是由于Eclipse的版本问题引起的。