首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

为何不能实现多线程

2011-12-15 
为什么不能实现多线程?package Testpublic class ThreadTestB {public static void main(String[]args){T

为什么不能实现多线程?
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();

热点排行