Java多线程-API

常见API一览

java 复制代码
Thread t1 = new Thread(() -> {
    System.out.println("我是线程t1");
    System.out.println("Hello, World!");
});
t1.start();
// 获取线程名称 getName()
// 线程名称默认是Thread-0, Thread-1, ...
System.out.println(t1.getName());

// 通过构造方法设置线程名称 Thread(Runnable target, String name)
// 也可以通过setName()方法设置线程名称
Thread t2 = new Thread(() -> {
    System.out.println("我是线程t2");
    System.out.println("Hello, World!");
}, "t2");
t2.start();
System.out.println(t2.getName());

// 获取当前线程名称
// Thread.currentThread()获取当前线程对象
// 主线程不是人为创建,一般都是使用这种方法进行创建的
System.out.println("我是主线程:"+Thread.currentThread().getName());

join方法决定执行顺序

  • 线程一旦开启,不同先线程之间的执行顺序具有随机性
  • join方法能够决定线程执行的先后顺序
    即使t1执行了很长时间,t2也必须在t1执行完毕之后才能执行
java 复制代码
Thread t1 =  new Thread() {
    @Override
    public void run() {
        try {
            sleep(10000);
        } catch (InterruptedException e) {
            throw new RuntimeException(e);
        }
        System.out.println("我是线程t1");
    }
};
t1.start();
t1.join();

Thread t2 = new Thread() {
    @Override
    public void run() {
        System.out.println("我是线程t2");
    }
};
t2.start();
t2.join();
相关推荐
csbysj20202 分钟前
C 标准库 - `<ctype.h>`
开发语言
郝学胜-神的一滴6 分钟前
计算机图形中的法线矩阵:深入理解与应用
开发语言·程序人生·线性代数·算法·机器学习·矩阵·个人开发
百锦再18 分钟前
第8章 模块系统
android·java·开发语言·python·ai·rust·go
没有bug.的程序员22 分钟前
Eureka 注册中心原理与服务注册发现机制
java·spring·云原生·eureka·架构·注册中心·服务注册发现
optimistic_chen23 分钟前
【Java EE进阶 --- SpringBoot】统一功能处理
java·spring boot·java-ee·json·统一功能处理
m0_5913389126 分钟前
day8鹏哥C语言--函数
c语言·开发语言·算法
oplp30 分钟前
回过头来重新对C语言进行深度学习(一)
c语言·开发语言
西岭千秋雪_36 分钟前
Zookeeper数据结构
java·数据结构·分布式·zookeeper
青云交37 分钟前
Java 大视界 --Java 大数据机器学习模型在金融风险压力测试中的应用与验证
java·随机森林·机器学习·lstm·压力测试·联邦学习·金融风险
程序编程- Java42 分钟前
和平精英java 游戏程序
java·游戏程序·安全架构·玩游戏