Thread线程的两种创建方式的传递过程

来源:互联网 发布:html css js注释 编辑:程序博客网 时间:2024/04/30 03:17
//线程类的传递过程
class Thread implements Runnable
{
    
    private Runnable r;
    Thread()   //无参构造
   {
    }


    Thread(Runnable r)  //有参 runnable构造
    {
       this.r = r;
     }


     public void run() //如果 Runnable不为空,执行r.run()
     { 
         if(r!=null)
          r.run();
     }


     public void start()//调用run方法
    {
       run();
      }
}


class ThreadDemo extends Thread
{
     ThreadDemo()
    {
       super();
     }
     
     public void run()
     {
       system.out.println("继承Thread的线程");
     }


}


main
{
       ThreadDemo t = new ThreadDemo();
       t.start();
       //过程
       创建 t 线程对象,通过无参构造,到父类无参构造,再调用父


类start方法,由于ThreadDemo类重写了父类,run方法。所以执行子类


run方法。
}






class RunnableDemo implements Runnable
{


     public void run()
     {
          System.out.println("实现了Runnable的线程");
       }
         
}


main
{
    RunnableDemo rd = new RunnableDemo();
    Thread t = new Thread(rd);
    t.start;
   //过程
   创建RunnableDemo类实例对象rd,通过有参构造,创建Thread类对


象实例t,把rd传进去。再调用父类start方法,至run方法,条件满足


,调用r.run()方法。因为rd实现了Runnable,所以调用rd的run方法。
}
原创粉丝点击