线程创建的三大方式

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

继承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方法中的业务逻辑。

目录
相关文章
多线程学习(二) 多线程创建4种方式
多线程学习(二) 多线程创建4种方式
68 0
|
5月前
|
Java 编译器
创建线程方式及应用总结
创建线程方式及应用总结
40 0
|
5月前
|
Java 编译器 程序员
线程创建及使用的三种方式总结
线程创建及使用的三种方式总结
51 3
|
7月前
|
Java 调度
多线程的基本概念和实现方式,线程的调度,守护线程、礼让线程、插入线程
多线程的基本概念和实现方式,线程的调度,守护线程、礼让线程、插入线程
66 0
|
7月前
|
安全 Java
线程创建与管理
线程创建与管理
41 2
|
7月前
|
缓存 Java 开发者
(详解版)创建线程的四种方式
(详解版)创建线程的四种方式
311 0
|
存储 Linux 调度
多线程——线程概念和线程控制
什么是线程,POSIX线程库,线程控制:pthread_create线程创建,pthread_exit线程终止,pthread_join线程回收,pthread_cancel线程取消,pthread_detach线程分离。线程id和地址空间分局,C++语言级别的多线程,二次封装线程库
132 0
多线程——线程概念和线程控制
|
Java
创建线程的方式
本章讲解了四种创建线程的方式
65 0
创建线程的三种方式
创建线程的三种方式
74 0

相关实验场景

更多