创建线程的3种方式

Posted hellosiyu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了创建线程的3种方式相关的知识,希望对你有一定的参考价值。

1 方式一:创建Thread的子类对象

1-1 创建一个线程,继承 Thread,重写run方法

public class MyThread extends Thread{

    public MyThread(String name){
        super(name);
    }

    @Override
    public void run(){
        for (int i = 0; i < 100; i++) {
            System.out.println(getName()+i);
        }
    }
}

1-2 测试类

public class test2 {
    public static void main(String[] args) {
        MyThread t1 = new MyThread("线程1");

        for (int i = 0; i < 100; i++) {
            System.out.println("线程2"+i);
        }
        t1.start();
    }

}

2 方式二:实现 Runnable接口

2-1 编写类,实现Runnable接口

public class MyThread implements Runnable{

    @Override
    public void run(){
        for (int i = 0; i < 100; i++) {
            System.out.println(Thread.currentThread().getName()+i);
        }
    }
}

测试

public class test2 {
    public static void main(String[] args) {
        MyThread myThread = new MyThread();
        Thread t1 = new Thread(myThread, "线程1");
        t1.start();
        for (int i = 0; i < 100; i++) {
            System.out.println("helloworld");
        }
    }

}

3 通过线程池创建多线程

编写类,实现Runnable接口

public class MyThread implements Runnable{

    @Override
    public void run(){
        for (int i = 0; i < 100; i++) {
            System.out.println(Thread.currentThread().getName()+i);
        }
    }
}

创建线程池

import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;

public class test2 {
    public static void main(String[] args) {
        ExecutorService executorService = Executors.newFixedThreadPool(3);
        MyThread myThread = new MyThread();
        executorService.submit(myThread);
        executorService.submit(myThread);
        executorService.submit(myThread);
    }

}

以上是关于创建线程的3种方式的主要内容,如果未能解决你的问题,请参考以下文章

创建线程的方式

Java多线程-线程创建的3种方式

创建线程有哪两种方法,它们各自的优缺点是啥?

Java线程Thread使用匿名内部类创建的两种方式

线程创建_同步_通信

JUC-线程创建的四种方式+原理分析