初识线程——继承Thread类和实现Runnable接口

初识线程

线程实现有两种方法意识继承Thread类,二是实现接口

一继承Thread

  1. 线程是不同的程序进程同时执行,一般继承run方法(规定死的),本例继承的类Thread
  2. 调用run方法,采用start的方式,若直接调用run方法则不会单独开启线程
  3. 案例效果初识线程——继承Thread类和实现Runnable接口_第1张图片

二实现接口

  1. 实现接口,继承implements Runnable,接口中有run方法
  2. 主程序中接口不能直接调用start方法,而是要经过new方法,Thread转化,转化方法入下

Xc2 xc2=new Xc2();//Xc是实现接口的类

    Thread a=new Thread(xc2);//经过转化

    a.start();

 

继承类案例:

class Xc extends Thread   //创建线程所需要继承的类 

{

    public void run()            //run方法是覆盖的父类方法,run方法是规定死的

    {

       for(int i=0;i<200;i++)

       {

           System.out.println("子函数");

       }

    }

}

 

public class L61

{

    public static void main(String[] args)

    {

       Xc xc = new Xc();

       //xc.run(); //调用run方法不能这样用,这样用就是先执行run方法,再执行下面的程序

       xc.start();   //谁调用的start方法,程序就去自动调用run方法

       //start会单独开启一个线程,而不是直接调用,下面的程序也会自动运行,即run方法和主函数方法都同时进行

       //xc.start();

      

       for(int i=0;i<200;i++)

       {

           System.out.println("主函数");

       }

    }

}

 

实现接口案例:

 

class Xc2 implements Runnable    //不继承类,而是改成了实现接口

{

    public void run()

    {

       for(int i=0;i<20;i++)

       {

           System.out.println("子函数");

       }

    }

}

 

public class L62

{

    public static void main(String[] args)

    {

       Xc2 xc2=new Xc2();

       Thread a=new Thread(xc2);

       a.start();

       for(int i=0;i<20;i++)

       {

           System.out.println("主函数");

       }

    }

}

你可能感兴趣的:(java初级)