码迷,mamicode.com
首页 > 编程语言 > 详细

线程创建的第二种方法

时间:2018-10-07 23:25:56      阅读:188      评论:0      收藏:0      [点我收藏+]

标签:并且   sys   报错   ext   private   []   sub   extend   形式   

第一种方法是继承并且重写run方法(不推荐使用)

第二种就是有爹的情况,用实现接口的形式拓展功能——实现Runnable接口

Runnable中只有run()方法

 

今天复习同步线程代码时候卡在一个问题上:

class SynThread implements Runnable
{
  run()
  {
    
  }
}

class Main
{
  public static void main(string [] args)
  {
    SynThread syn=new SynThread();
    Thread a=new Thread(syn);                      //问题:为啥要传syn进去???
    a.start();
  }
}

  


 后来看了毕老师视频后才明白。

    解释:

//Thread有一种Thread(Runnable a) 的初始化方法
class Thread implements Runnable
{
  private Runnable i;
  Thread(Runnable i)   //④
  {
    this i=i;
  }

  run()//Thread类实现的Runnable方法    //②
  {
    i.run();
  }

  strat()
  {
    run();     //①
  }
}

class SynThread implements Runnable
{
  run()     //③
  {
    syso("子类SubThread");
   }
}

class SubThread extend Thread
{
  run()   //⑤
  {
    syso("子类SubThread");
  }
}


class Main
{
  public static void main(...)
  {
    SubTread sub=new SubThread();
    sub.start(); //      由①-->③

    Thread th=new Thread();
    th.strat();   // 有①-->②   但是这时i无值,所以会报错,可以在②里加上判断语句

     
    SynThread syn=new SynThread();
    Thread th=new Thread(syn);   //这里直接进入④ 给i赋了值
    th.start();  //  ①-->②-->⑤

  } 
}

  

  

 

 

线程创建的第二种方法

标签:并且   sys   报错   ext   private   []   sub   extend   形式   

原文地址:https://www.cnblogs.com/zzw3014/p/9751900.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!