package Test;public class ThreadTestB {
public static void main(String[]args){
Thread t1=new Thread(new MyRunnableA());
Thread t2=new Thread(new MyRunnableB());
}}
class MyRunnableA implements Runnable{
public void run(){
int i=0;
while(i<20){
i++;
for(int k=0;k<100000;k++);
System.out.println("i="+i);
}
}
}
class MyRunnableB implements Runnable{
public void run(){
char c='A';
while(c<='Z');
System.out.println("c="+c);
for(int k=0;k<100000;k++);
}

}
疑问:我用的是Eclipse,编译没有报错,但是运行后,什么结果都没有,为什么不能实现多线程的结果?希望各位高手指点,谢谢!

解决方案 »

  1.   

    少调用了t1.start(),或者t1.run()方法吧?记不清是哪个了,自己试下看
      

  2.   

    使用start()方法,顺便附上start方法和run方法的区别:通过调用Thread类的start()方法来启动一个线程,
    这时此线程是处于就绪状态,
    并没有运行。
    然后通过此Thread类调用方法run()来完成其运行操作的,
    这里方法run()称为线程体,
    它包含了要执行的这个线程的内容,
    Run方法运行结束,
    此线程终止,
    而CPU再运行其它线程,而如果直接用Run方法,
    这只是调用一个方法而已,
    程序中依然只有主线程--这一个线程,
    其程序执行路径还是只有一条,
    这样就没有达到写线程的目的。记住:线程就是为了更好地利用CPU,
    提高程序运行速率的!
      

  3.   

    建立了两个线程 可是都没启动他们 自然不会有结果t1.start();
    t2.start();