Java如何创建多线程

1,554 阅读1分钟

一、Java创建多线程的两种方式 继承Thread类 实现Runnable接口 两种方法都需要重写run()方法之后调用start()方法让线程进入准备状态。(具体执行时间由cpu调度,start()方法并非真正的执行方法)。

继承Thread类 Thread类本身也是实现了Runnable接口,重写了run()方法,Thread类可直接实例化线程对象

package test;


import org.junit.Test;


/**
 * @ClassName: test1
 * @Description: TODO
 * @Author: JL
 * @Date: 2019/2/18 17:46
 * @Version 1.0
 */
public class test1 {
    @Test
    public void test(){
        new ThreadTest().start();
        new ThreadTest().start();
        new ThreadTest().start();
        new ThreadTest().start();
        new ThreadTest().start();
    }

    class ThreadTest extends Thread{
        //继承Thread类,重写run()方法
        @Override
        public void run() {
            System.out.println(Thread.currentThread().getName()+"执行Start");
            System.out.println(Thread.currentThread().getName()+"执行End");
        }
    }
}

实现Runnable接口 实例化Runnable接口的实现类对象,作为Thread类的构造器参数生成线程对象。

   @Test
    public void t2(){
        ThreadTest1 runnable = new ThreadTest1();
        new Thread(runnable).start();
        new Thread(runnable).start();
        new Thread(runnable).start();
        new Thread(runnable).start();
        new Thread(runnable).start();
    }

    class ThreadTest1 implements Runnable{
        //实现Runnable接口,实现run()方法
        @Override
        public void run() {
            System.out.println(Thread.currentThread().getName()+"执行Start");
            System.out.println(Thread.currentThread().getName()+"执行End");
        }
    }

总结:java中存在单继承、多实现的特性,所以我们在开发过程中尽量使用实现Runnable接口,而非继承Thread类。