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

多线程里为什么没有start()方法-多谢

2012-02-26 
多线程里为什么没有start()方法--谢谢packagecom.yema.baopublicclassRunnableDemo{publicstaticvoidmain

多线程里为什么没有start()方法--谢谢
package   com.yema.bao;

public   class   RunnableDemo   {

public   static   void   main(String[]   args)   {

Xian1   x1   =   new   Xian1();
Xian2   x2   =   new   Xian2();
x1.run();//这里为什么start()方法
x2.run();//这里为什么start()方法
//我这个问题就是要实现多线程,
}

}

class   Xian1   implements   Runnable   {

public   void   run()   {
for   (int   i   =   0;   i   <   10;   i++)   {
System.out.println(i);
}

}

}

class   Xian2   implements   Runnable   {

public   void   run()   {
for   (int   i   =   (int)   'a ';   i   <=   (int)   'z ';   i++)   {
System.out.println((char)   i);
}

}

}

[解决办法]
x1.run();//这里为什么start()方法
======
(new Thread(x1)).start()
[解决办法]
这里不可以调用run方法,run方法是当你调用start方法的时候,线程类会自己获得线程环境,并调用相应的run方法。
也就是说run方法不是你手动调用的,而是由实例通过start方法自动调用的!!
[解决办法]
LZ的程序没有多线程啊,new Thread(x1).start()才能创建并启动多线程,本质上start()执行的是一个对run()的调用。
[解决办法]
这样相当于只是调了一个普通的方法,还是应该调用start(),只要调有参构造器,(Runnable ...),调用start()就会自动调用run()
[解决办法]
Thread类才有start()

热点排行
Bad Request.