Thread 类的基本用法

目标:

  1. 线程创建

  2. 线程中断

  3. 线程等待

  4. 线程休眠

  5. 获取线程实例

线程创建

1. 继承 Thread 类

创建一个 Thread 类的子类,并重写 run 方法,然后通过实例化的子类对象来调用 start() 方法启动线程。

class MyThread extends Thread {

public void run() {

// 线程执行的代码

}

}

MyThread thread = new MyThread();

thread.start();

2. 实现 Runnable 接口

创建一个类并实现 Runnable 接口,然后重写 run 方法,然后将实现Runnable 接口的对象传递给 Thread 类的构造函数。

class MyRunnable implements Runnable {

public void run() {

// 线程执行的代码

}

}

Thread thread = new Thread(new MyRunnable());

thread.start();

3. lambda 表达式

比较推荐:使用 lambda 表达式创建线程的时候不用重写 run 方法。

不需要显式重写run方法的原因是因为线程的目标方法已经在Lambda表达式中定义了。Lambda表达式是一种用于创建匿名函数的语法糖,它可以将一个方法(或一段代码块)包装为一个函数对象。当您使用Lambda表达式创建线程时,Lambda表达式的内容会被视为线程执行的任务,这个任务会自动成为run方法的实现。

复制代码
Thread t = new Thread(() -> {
    //线程执行的代码
});
t.start();

线程中断

使用 interrupt() 方法中断线程的执行。被中断的线程需要检查自身的中断状态(下篇博客会介绍),并在必要时终止线程的执行。

Thread myThread = new Thread(() -> {

while (!Thread.currentThread().isInterrupted()) {

// 线程执行的代码

}

});

// 中断线程

myThread.interrupt();


线程等待

使用 wait() 和 notify() / notifyAll() 方法来实现线程的等待和通知机制。

wait() :让线程等待,直到其他线程调用对象的 "notify() / notifyAll() " 方法来唤醒它

notify() :唤醒等待在相同对象上的一个随机线程

notifyAll() :唤醒等待在相同对象上的所有线程


线程休眠

使用Thread.sleep() 方法使线程进入休眠状态,暂停执行一段指定的时间。

try {

Thread.sleep(1000); // 休眠1秒

} catch (InterruptedException e) {

// 处理中断异常

}


获取线程实例

使用 Thread.currentThread() 方法来获取当前正在执行的线程的实例。

Thread currentThread = Thread.currentThread();

相关推荐
Escalating_xu37 分钟前
【Linux 网络编程】五种 I/O 模型与非阻塞 I/O:从“等数据”到正确处理 EAGAIN
java·linux·网络
程序猿乐锅1 小时前
万字详解Single-flight(单飞模式)
java·开发语言·分布式·后端·学习·single-flight
Java后端的Ai之路1 小时前
【AIAgent开发】-Agent工具封装成CLI(纯干货!!!)
java·javascript·人工智能·agent·cli
AntsData2 小时前
用 12K+ 条亚马逊评论信号,定位机械键盘下一版该改什么
java·大数据·计算机外设
code2cat2 小时前
【随笔】连续批处理:长短请求怎样在迭代之间补位
java·人工智能·后端·大语言模型·vllm
最强小杰2 小时前
DeepSeek V4 Flash + Codex CLI 接入教程:原生 Responses API 适配,从配置到跑通收藏这篇就够了(2026)
java·前端·python·ai
Flynn Liang2 小时前
Spring AI 2.0 深度解析:ChatClient、Advisor 链与 MCP——Java 工程师的 AI 落地最优解
java·人工智能·spring·大模型·架构设计·spring ai
灿飞2 小时前
Kotlin与Java虚拟机六:基础与类型系统:一切皆对象,但对象有代价
java·kotlin
计算机毕设定制辅导-无忧学长2 小时前
《基于微信小程序健康习惯激励系统设计与实现》
java·spring boot·mysql·微信小程序·uniapp·健康习惯激励系统
雪芽蓝域zzs3 小时前
第 1 章:IDEA 创建 SpringBoot3.5.16 Maven 项目
java·maven·intellij-idea