日期:2014-05-20  浏览次数:20690 次

为什么不能实现多线程?
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,编译没有报错,但是运行后,什么结果都没有,为什么不能实现多线程的结果?希望各位高手指点,谢谢!

------解决方案--------------------
少调用了t1.start(),或者t1.run()方法吧?记不清是哪个了,自己试下看
------解决方案--------------------
使用start()方法,顺便附上start方法和run方法的区别:

通过调用Thread类的start()方法来启动一个线程,
这时此线程是处于就绪状态,
并没有运行。
然后通过此Thread类调用方法run()来完成其运行操作的,
这里方法run()称为线程体,
它包含了要执行的这个线程的内容,
Run方法运行结束,
此线程终止,
而CPU再运行其它线程,

而如果直接用Run方法,
这只是调用一个方法而已,
程序中依然只有主线程--这一个线程,
其程序执行路径还是只有一条,
这样就没有达到写线程的目的。

记住:线程就是为了更好地利用CPU,
提高程序运行速率的!


------解决方案--------------------
建立了两个线程 可是都没启动他们 自然不会有结果

t1.start();
t2.start();