这个程序输出无结果,但是把  zhang = new Thread("张小红"); wang = new Thread("Keven"); 改成   
      zhang=new Thread(this); 
       zhang.setName("张小红");
       keven=new Thread(this);
       keven.setName("Keven");
就对了 为什么呀 怎么错了呀
class Move implements Runnable{
Thread zhang, wang;
Move(){
zhang = new Thread("张小红");
wang = new Thread("Keven");
}
public void run(){
int i = 0;
System.out.println(Thread.currentThread().getName());
while(true){
if(Thread.currentThread().getName().equals("张小红")){
i++;
System.out.println("张小红"+"线程的局部变量i=:"+i);
if(i >= 10){
System.out.println("张小红线程进入死亡状态");
return;
}
}
else if(Thread.currentThread().getName().equals("Keven"))
{
i--;
System.out.println("Keven"+"线程的局部变量i=:"+i);
if(i <= -10){
System.out.println("Keven线程进入死亡状态");
return;
}
}
}
}
}
class Example{
public static void main(String[] args){
Move move = new Move();
move.zhang.start();
move.wang.start();
}
}

解决方案 »

  1.   

    zhang = new Thread("张小红"); wang = new Thread("Keven");你存放的是字符串
    zhang=new Thread(this); 
           zhang.setName("张小红");
           keven=new Thread(this);
           keven.setName("Keven")存放的是对象
    你应该能明白了吧
      

  2.   

    Threadpublic Thread(String name)    分配新的 Thread 对象。这种构造方法与 Thread(null, null, name) 具有相同的作用。    参数:
            name - 新线程的名称。这个是API里写的呀
      

  3.   


    zhang = new Thread(null,null,"张小红")
    你这样写试试
      

  4.   

    zhang = new Thread("张小红");  这种写法只是生成了一个线程,但是没有关联到你的Move类,
    在main里,start()以后,并没有调用你自己实现的接口run()