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

时间:2021-02-13 19:39:14

创建线程的第二中方式:

/**
 *
     步骤:

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