线程创建的三大方式

简介: 线程创建的三大方式

继承Thread类 重写run方法

  1. Thread类也是Runnable接口的实现类
/**
 * @author 舒一笑
 * @date 2023/5/24
 */
public class test1 {
    public static void main(String[] args) {
        Thread01 thread01 = new Thread01();
        thread01.start();
        for (int i = 0; i < 100; i++) {
            System.out.println("mian" + i);
        }
    }
}
class Thread01 extends Thread{
    @Override
    public void run() {
        for (int i = 0; i < 100; i++) {
            System.out.println("Thread01" + i);
        }
    }
}

实现Runnable接口 重写run方法

/**
 * @author 舒一笑
 * @date 2023/5/24
 */
public class test1 {
    public static void main(String[] args) {
//        Thread01 thread01 = new Thread01();
//        thread01.start();
        Thread02 thread02 = new Thread02();
        Thread t2 = new Thread(thread02);
        t2.start();

        for (int i = 0; i < 100; i++) {
            System.out.println("mian" + i);
        }
    }
}
class Thread01 extends Thread{
    @Override
    public void run() {
        for (int i = 0; i < 100; i++) {
            System.out.println("Thread01" + i);
        }
    }
}
class Thread02 implements Runnable{

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

匿名内部类方式:

/**
 * @author 舒一笑
 * @date 2023/5/24
 */
public class test1 {
    public static void main(String[] args) {
//        Thread01 thread01 = new Thread01();
//        thread01.start();
//        Thread02 thread02 = new Thread02();
//        Thread t2 = new Thread(thread02);
//        t2.start();
//
//        for (int i = 0; i < 100; i++) {
//            System.out.println("mian" + i);
//        }
        Thread t3 = new Thread(new Runnable() {
            @Override
            public void run() {
                for (int i = 0; i < 10; i++) {
                    System.out.println("Thread03" + i);
                }
            }
        });
        t3.start();
    }
}
/**

lambda表达式的方式创建

/**
 * @author 舒一笑
 * @date 2023/5/24
 */
public class test1 {
    public static void main(String[] args) {
//        Thread01 thread01 = new Thread01();
//        thread01.start();
//        Thread02 thread02 = new Thread02();
//        Thread t2 = new Thread(thread02);
//        t2.start();
//
//        for (int i = 0; i < 100; i++) {
//            System.out.println("mian" + i);
//        }
//        Thread t3 = new Thread(new Runnable() {
//            @Override
//            public void run() {
//                for (int i = 0; i < 10; i++) {
//                    System.out.println("Thread03" + i);
//                }
//            }
//        });
        Thread t4 = new Thread(() -> {
            for (int i = 0; i < 100; i++) {
                System.out.println("lambda:" + i);
            }
        });
        t4.start();
    }
}

总结

启动线程是调用start方法,这样会创建一个新的线程,并执行线程的任务。

如果直接调用run方法,这样会让当前线程执行run方法中的业务逻辑。

目录
相关文章
|
8月前
多线程学习(二) 多线程创建4种方式
多线程学习(二) 多线程创建4种方式
38 0
|
6天前
|
存储 开发框架 安全
【C++ 线程】深入理解C++线程管理:从对象生命周期到线程安全
【C++ 线程】深入理解C++线程管理:从对象生命周期到线程安全
103 0
|
6天前
|
安全 Java
线程创建与管理
线程创建与管理
22 2
|
6天前
|
缓存 Java 开发者
(详解版)创建线程的四种方式
(详解版)创建线程的四种方式
80 0
|
8月前
|
Java
创建线程的方式
本章讲解了四种创建线程的方式
37 0
|
9月前
|
Java
创建多线程的方式四:使用线程池
创建多线程的方式四:使用线程池
44 0
|
10月前
创建线程的三种方式
创建线程的三种方式
51 0
|
存储 Linux 调度
Linux多线程:线程概念、线程间的独有与共享、多线程VS多进程,线程控制:线程创建、线程终止、线程等待、线程分离
Linux多线程:线程概念、线程间的独有与共享、多线程VS多进程,线程控制:线程创建、线程终止、线程等待、线程分离
197 0
线程创建的三种方式
线程创建的三种方式
线程创建的三种方式