/***看兔子和乌龟的进程**/class Tortoise extends Thread
{
int sleepTime=0,liveLength=0;
Tortoise(int sleepTime,String name,int liveLength){
this.sleepTime=sleepTime;
this.liveLength=liveLength;
setName(name);
}
public void run(){
while(true){
liveLength--;
System.out.print("跑£");
try{
Thread.sleep(sleepTime);//休眠sleepTime,之后重新新等待CPU资源
}catch(InterruptedException e){
System.out.println("兔子进程中断");
}
if(liveLength<=0){
System.out.println(getName()+"死亡状态");
stop();//终止线程
}
}
}
}
class Rabbit extends Thread
{
int sleepTime=0,liveLength=0;
Rabbit(int sleepTime,String name,int liveLength){
this.sleepTime=sleepTime;
this.liveLength=liveLength;
setName(name);
}
public void run(){
while(true){
liveLength--;
System.out.print("爬≈");
try{
Thread.sleep(sleepTime);//休眠sleepTime毫秒,之后重新新等待CPU资源
}catch(InterruptedException e){
System.out.println("乌龟进程中断");
}
if(liveLength<=0){
System.out.println(getName()+"死亡状态");
stop();//终止线程
}
}
}
}
public class TortoiseAndRabbit
{
public static void main(String[]args){
Rabbit rabbit=new Rabbit(1000,"兔子",20);
Tortoise tortoise=new Tortoise(500,"乌龟",10);
rabbit.start();
tortoise.start();
}
}
//不明白为什么乌龟线程已经死亡了,还可以输出乌龟跑。????
{
int sleepTime=0,liveLength=0;
Tortoise(int sleepTime,String name,int liveLength){
this.sleepTime=sleepTime;
this.liveLength=liveLength;
setName(name);
}
public void run(){
while(true){
liveLength--;
System.out.print("跑£");
try{
Thread.sleep(sleepTime);//休眠sleepTime,之后重新新等待CPU资源
}catch(InterruptedException e){
System.out.println("兔子进程中断");
}
if(liveLength<=0){
System.out.println(getName()+"死亡状态");
stop();//终止线程
}
}
}
}
class Rabbit extends Thread
{
int sleepTime=0,liveLength=0;
Rabbit(int sleepTime,String name,int liveLength){
this.sleepTime=sleepTime;
this.liveLength=liveLength;
setName(name);
}
public void run(){
while(true){
liveLength--;
System.out.print("爬≈");
try{
Thread.sleep(sleepTime);//休眠sleepTime毫秒,之后重新新等待CPU资源
}catch(InterruptedException e){
System.out.println("乌龟进程中断");
}
if(liveLength<=0){
System.out.println(getName()+"死亡状态");
stop();//终止线程
}
}
}
}
public class TortoiseAndRabbit
{
public static void main(String[]args){
Rabbit rabbit=new Rabbit(1000,"兔子",20);
Tortoise tortoise=new Tortoise(500,"乌龟",10);
rabbit.start();
tortoise.start();
}
}
//不明白为什么乌龟线程已经死亡了,还可以输出乌龟跑。????
Tortoise "跑£" "兔子进程中断"另外,stop方法现在过时了。针对楼主的这两个线程,把stop换成break就可以了吧,run方法结束了,进程也就自动结束了
int sleepTime=0,liveLength=0;
Tortoise(int sleepTime,String name,int liveLength){
this.sleepTime=sleepTime;
this.liveLength=liveLength;
setName(name);
}
public void run(){
while(true){
liveLength--;
System.out.print("爬£"); //个人觉得乌龟爬更合适
try{
Thread.sleep(sleepTime);//休眠sleepTime,之后重新新等待CPU资源
}catch(InterruptedException e){
System.out.println("乌龟线程中断"); //这里你写错了
}
if(liveLength <=0){
System.out.println(getName()+"死亡状态");
//stop();//终止线程
break;
}
}
}
}class Rabbit extends Thread {
int sleepTime=0,liveLength=0;
Rabbit(int sleepTime,String name,int liveLength){
this.sleepTime=sleepTime;
this.liveLength=liveLength;
setName(name);
}
public void run(){
while(true){
liveLength--;
System.out.print("跑≈"); //兔子还是用跑吧
try{
Thread.sleep(sleepTime);//休眠sleepTime毫秒,之后重新新等待CPU资源
}catch(InterruptedException e){
System.out.println("兔子线程中断"); //这里错了
}
if(liveLength <=0){
System.out.println(getName()+"死亡状态");
//stop();//终止线程
break;
}
}
}
}
public class TortoiseAndRabbit
{
public static void main(String[]args){
Rabbit rabbit=new Rabbit(1000,"兔子",20);
Tortoise tortoise=new Tortoise(500,"乌龟",10);
rabbit.start();
tortoise.start();
}
}不知道你是不是已经这么修改了?我这里可以输出如下结果:
跑≈爬£爬£跑≈爬£爬£跑≈爬£爬£爬£跑≈爬£跑≈爬£爬£跑≈乌龟死亡状态
跑≈跑≈跑≈跑≈跑≈跑≈跑≈跑≈跑≈跑≈跑≈跑≈跑≈跑≈兔子死亡状态