java基础知识回顾之java Thread类--java线程实现常见的两种方式实现Runnable接口(二)

时间:2021-05-20 17:32:53

创建线程的第二中方式:

/**
 *

     步骤:

      1定义类实现Runnable接口
      2.实现Runnable接口中的run方法。
      3.通过Thread类建立线程对象,并将Runnable 接口的子类对象作为实际参数传给Thread类的构造方法、
      4.调用Thread类的start方法开启线程,并调用Runnable接口子类的run方法
      为什么要将Runnable接口子类的对象传递给Thread类的构造方法?
      因为线程的任务(要运行的代码)都封装在Runnable接口的子类对象的run方法中,所以在线程对象创建的时候就必须明确要运行的任务。
 *
 */

package com.lp.ecjtu.Thread;

public class HelloRunnableThread  implements Runnable{
    private String name;
    

    public String getName() {
        return name;
    }


    public void setName(String name) {
        this.name = name;
    }
    
    public HelloRunnableThread(String name){
        this.name = name;
    }

    @Override
    public void run() {
        for(int i=0;i<=100;i++){
            System.out.println(name+"运行"+i);
        }
    }
    public static void main(String[] args){
        HelloRunnableThread h1 = new HelloRunnableThread("A");
        HelloRunnableThread h2 = new HelloRunnableThread("B");
        Thread t1 = new Thread(h1);//h1为传入线程构造方法的接口
        Thread t2 = new Thread(h2);
        System.out.println("线程启动之前---》"+t1.isAlive());//测试线程是否处于活动状态
        t1.start();//开启线程,进入可运行状态
        System.out.println("线程启动之后---》"+t1.isAlive());
        t2.start();
    }
}

输出:

线程启动之前---》false
线程启动之后---》true
A运行0
B运行0
B运行1
B运行2
B运行3
B运行4
B运行5
B运行6
B运行7
B运行8
B运行9
B运行10
B运行11
B运行12
B运行13
A运行1
B运行14
A运行2
B运行15