首页 > 编程语言 > 详细

线程创建的第二种方法

时间:2018-10-07 22:49:46      阅读:123      评论:0      收藏:0      [点我收藏+]

第一种方法是继承并且重写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();  //  ①-->②-->⑤

  } 
}

  

  

 

 

线程创建的第二种方法

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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!