线程创建的第二种方法

Posted zzw3014

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了线程创建的第二种方法相关的知识,希望对你有一定的参考价值。

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

  } 
}

  

  

 

 

以上是关于线程创建的第二种方法的主要内容,如果未能解决你的问题,请参考以下文章

C# 多线程更新界面的第二种方法

Unsafe.putOrderedXXX系列方法详解(数组赋值的第二种方式)

Java第九天

Java 创建线程

Java多线程的第二种方式--接口

python_并发编程——多进程的第二种启动方式