尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

Thread类及常见方法

Thread类及常见方法
📅 发布时间:2026/6/20 17:58:27

一、Thread的常见构造方法

方法说明
Thread()

这会创建一个默认的线程对象,没有指定要执行的任务

Thread(Runnable target)

通过传入一个 Runnable 接口的实现类来指定线程要执行的任务

Thread(String name)

创建线程并指定线程名称,便于调试和日志记录

Thread(Runnable target,String name)

同时指定任务和名称

示例:

// 无参构造 Thread thread1 = new Thread(); // 带 Runnable Runnable task = () -> System.out.println("Hello from thread"); Thread thread2 = new Thread(task); // 带名称 Thread thread3 = new Thread("MyThread"); // 带 Runnable 和名称 Thread thread4 = new Thread(task, "MyTaskThread");

二、Thread的几种常见属性

属性获取方法
线程名称getName()
线程优先级getPriority()
守护线程标志isDeamo()
线程IDgetId()
线程状态getState()

示例:

Thread thread = new Thread(); System.out.println("Name: " + thread.getName()); // Thread-0 System.out.println("Priority: " + thread.getPriority()); // 5 System.out.println("Is Daemon: " + thread.isDaemon()); // false System.out.println("ID: " + thread.getId()); // 例如 12 System.out.println("State: " + thread.getState()); // NEW

三、启动一个线程-start()

要启动一个线程,不能直接调用 run() 方法(那样只是普通方法调用,不会开启新线程),而是要调用 start() 方法。start() 会通知 JVM 创建一个新线程,并调用 run() 方法。

  • public void start():启动线程。一旦调用,线程进入 RUNNABLE 状态。
  • 注意:一个线程只能调用一次 start(),多次调用会抛出 IllegalThreadStateException。

示例:

Thread thread = new Thread(() -> { System.out.println("Thread is running"); }); thread.start(); // 启动线程

四、中断一个线程

方法说明

public void interrupt()

向线程发送中断信号,设置中断标志

public boolean isInterrupted()

检查中断标志(不清除)

public static boolean interrupted()

检查并清除中断标志

示例:

Thread thread = new Thread(() -> { while (!Thread.interrupted()) { System.out.println("Working..."); } System.out.println("Interrupted!"); }); thread.start(); // 稍后中断 thread.interrupt();

五、等待一个线程-join()

方法说明

public void join()

无限等待,直到目标线程结束

public void join(long millis)

等待指定毫秒,如果超时则继续

public void join(long millis, int nanos)

更精确的超时等待

示例:

Thread thread = new Thread(() -> { try { Thread.sleep(2000); } catch (InterruptedException e) { e.printStackTrace(); } System.out.println("Thread finished"); }); thread.start(); try { thread.join(); // 主线程等待 thread 完成 } catch (InterruptedException e) { e.printStackTrace(); } System.out.println("Main thread continues");

六、获取当前线程引用

方法说明

public static Thread currentThread()

返回当前线程的 Thread 对象

示例:

public class Main { public static void main(String[] args) { Thread current = Thread.currentThread(); System.out.println("Current thread: " + current.getName()); // main new Thread(() -> { Thread inner = Thread.currentThread(); System.out.println("Inner thread: " + inner.getName()); // Thread-0 }).start(); } }

七、休眠当前线程

方法说明

public static void sleep(long millis)

休眠指定毫秒

public static void sleep(long millis, int nanos)

更精确的休眠

示例:

try { Thread.sleep(1000); // 休眠 1 秒 } catch (InterruptedException e) { // 处理中断 Thread.currentThread().interrupt(); // 重新设置中断标志 } System.out.println("Woke up!");

相关新闻

  • 轻松上手!Zen Browser多语言设置完全指南:让你的浏览器说你的语言
  • 5个BongoCat窗口管理技巧:让你的桌面伙伴更懂你
  • 基于vue的招聘求职人才库平台_d852tptg_springboot php python nodejs

最新新闻

  • Rocky Linux 8 Python开发环境搭建全指南
  • 2026安徽普高线下考生,考不上普高能上全日制大学吗?合肥理工职教高考班11年升本榜首 - 小张zc
  • 2026无锡装修,老板直管工地+12小时响应,为什么这家公司转介绍率能达72%? - 装企自媒体训练营辉哥
  • Nintendo Switch游戏转储终极指南:NxDumpTool完整使用教程
  • Steam游戏自动破解终极指南:如何快速实现游戏自由启动
  • 深度解析Unity游戏逆向:Cpp2IL高级实战指南

日新闻

  • Visual C++运行库修复终极指南:5分钟快速解决Windows软件启动错误
  • 手把手教你构建统计局地区经济数据爬虫:从环境搭建到数据持久化全指南
  • 2026多Agent深度解析:用AI团队替代单一模型,四种架构实战落地

周新闻

  • Visual C++运行库修复终极指南:5分钟快速解决Windows软件启动错误
  • 手把手教你构建统计局地区经济数据爬虫:从环境搭建到数据持久化全指南
  • 2026多Agent深度解析:用AI团队替代单一模型,四种架构实战落地

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号