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

goyangtao 2007-07-17 10:38:03
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);
}

}

}
...全文
380 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
joejoe1991 2007-07-18
  • 打赏
  • 举报
回复
Thread类才有start()
lsw0720 2007-07-17
  • 打赏
  • 举报
回复
这样相当于只是调了一个普通的方法,还是应该调用start(),只要调有参构造器,(Runnable ...),调用start()就会自动调用run()
realcbb 2007-07-17
  • 打赏
  • 举报
回复
LZ的程序没有多线程啊,new Thread(x1).start()才能创建并启动多线程,本质上start()执行的是一个对run()的调用。
feihua317 2007-07-17
  • 打赏
  • 举报
回复
这里不可以调用run方法,run方法是当你调用start方法的时候,线程类会自己获得线程环境,并调用相应的run方法。
也就是说run方法不是你手动调用的,而是由实例通过start方法自动调用的!!
cunsh 2007-07-17
  • 打赏
  • 举报
回复
x1.run();//这里为什么start()方法
======
(new Thread(x1)).start()

62,623

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧