看网上视频教程及书上源代码,说线程在实际运行中是交替运行的。我抄了书上的源代码,在eclipse中运行,并未出现交替运行结果,怎么回事?
代码如下:class PrintLetter extends Thread{
private char letter;
private int num;
public PrintLetter(char ch,int num){
letter = ch;
this.num = num;
}

public void run(){
for(int i=0;i<num;i++){
System.out.print(letter+" ");
}
System.out.println();
    }
}

public class PrintNumber extends Thread {
    private int num;
    public PrintNumber (int num){
     this.num=num;
    }
    public void run(){
     for(int i=0;i<num;i++){
System.out.print(i+" ");
}
     System.out.println();
    }
    
    public static void main(String args[]){
     PrintLetter t2 = new PrintLetter('a',50);
     PrintNumber t1 = new PrintNumber(50);
     t1.start();
     t2.start();
    }
}

解决方案 »

  1.   

    的确啊!再追问一下,我看书上源代码在类PrintLetter前加上public修饰。这肯定是不允许的(一个java程序只能有一个类被public修饰)。我直接把PrintLetter前的public给删了,这样对源代码会不会有影响?(书上好多源代码都是这样。而且这个程序的运行结果和书上的结果都不一样了)
      

  2.   

    的确啊!再追问一下,我看书上源代码在类PrintLetter前加上public修饰。这肯定是不允许的(一个java程序只能有一个类被public修饰)。我直接把PrintLetter前的public给删了,这样对源代码会不会有影响?(书上好多源代码都是这样。而且这个程序的运行结果和书上的结果都不一样了)