开启子线程的三种方式

1. 实现多线程的方式

  • 继承Thread类
  • 实现Runnable接口
  • 一般使用匿名的方式

2. 示例

package comi.example.liy.mytestdemo;

import org.junit.Test;

import static org.junit.Assert.assertEquals;

/**
 * Example local unit test, which will execute on the development machine (host).
 *
 * @see Testing documentation
 */
public class ExampleUnitTest {
    
    /**
     * 自定义线程类1:继承Thread类
     */
    class MyThread extends Thread{
        @Override
        public void run() {
            //super.run();
            for (int i = 0; i < 10; i++) {
                System.out.println("MyThread-"+i);
                //System.out.println(new Date()+"-"+i);
            }
        }
    }
    @Test
    public void test1(){
        MyThread myThread = new MyThread();
        myThread.start();
    }


    /**
     * 自定义线程类2:实现Runnable接口
     */
    class MyRunnable implements Runnable{
        @Override
        public void run() {
            for (int i = 0; i < 10; i++) {
                System.out.println("MyRunnable-"+i);
            }
        }
    }
    @Test
    public void test2(){
        MyRunnable myRunnable = new MyRunnable();
        Thread thread = new Thread(myRunnable);
        thread.start();
    }
    

    /**
     * 一般使用匿名的方式(一个匿名对象:new Thread().start(),一个接口式的匿名内部类:new Runnable(){})
     */
    @Test
    public void test3(){
        new Thread(new Runnable() {
            @Override
            public void run() {
                for (int i = 0; i < 10; i++) {
                    System.out.println("Thread_Runnable-"+i);
                }
            }
        }).start();
    }



}

你可能感兴趣的:(开启子线程的三种方式)