其实是Thread实体调用你继承Runnable 接口的run方法

解决方案 »

  1.   

    Thread.class类内部定义了一个实例变量,类型为Runnable,如下:
    private Runnable target;默认的run()方法为
        public void run() {
    if (target != null) {
        target.run();
    }
        }
    如果在构造器传入了Runnable对象,并且没有override run()方法的话,就会调用target的run方法。具体线程的初始化,是在public synchronized native void start();这个本地方法中完成的因此,Runnable接口只是一个类型标记。具体你可以读Thread.java的源代码。
      

  2.   

    我是说为 为什么实现了Runnable 接口就能实现多线程?
      

  3.   

    已经写得很清楚了具体线程的初始化,是在public synchronized native void start()这个本地方法中完成的Runnable接口只是一个类型标记。
      

  4.   

    呵呵,有了run方法,还有什么不能解决的呢?
      

  5.   

    public synchronized native void start()
    是怎么写的。
      

  6.   

    Runnable接口只是一个标记,分离了具体的线程实现类。虚拟机只需要与Runnable类型的对象进行交互。说白了,就是松散耦合。public synchronized native void start();
    是本地方法,大概是用c/c++实现的。这部分原码好象是不公开的