创建线程的3种方式

Deadly 提交于 2020-03-12 22:19:41

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);
    }

}
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!