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);
} }}

解决方案 »

  1.   

    x1.run();//这里为什么start()方法
    ======
    (new Thread(x1)).start()
      

  2.   

    这里不可以调用run方法,run方法是当你调用start方法的时候,线程类会自己获得线程环境,并调用相应的run方法。
    也就是说run方法不是你手动调用的,而是由实例通过start方法自动调用的!!
      

  3.   

    LZ的程序没有多线程啊,new Thread(x1).start()才能创建并启动多线程,本质上start()执行的是一个对run()的调用。
      

  4.   

    这样相当于只是调了一个普通的方法,还是应该调用start(),只要调有参构造器,(Runnable ...),调用start()就会自动调用run()