尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
多线程:Thread类基本用法
多线程编程是现代软件开发中不可或缺的一部分它允许程序同时执行多个任务大大提高应用程序的效率和响应能力。一创建线程的两种方式1. 继承Thread类public class MyThread extends Thread {Overridepublic void run() {// 线程执行的代码for (int i 0; i 5; i) {System.out.println(Thread.currentThread().getName() : i);try {Thread.sleep(500); // 线程休眠500毫秒} catch (InterruptedException e) {e.printStackTrace();}}}}使用方法public class Main {public static void main(String[] args) {MyThread thread1 new MyThread();MyThread thread2 new MyThread();thread1.start(); // 启动线程1thread2.start(); // 启动线程2}}2. 实现Runnable接口public class MyRunnable implements Runnable {Overridepublic void run() {// 线程执行的代码for (int i 0; i 5; i) {System.out.println(Thread.currentThread().getName() : i);try {Thread.sleep(500); // 线程休眠500毫秒} catch (InterruptedException e) {e.printStackTrace();}}}}使用方法public class Main {public static void main(String[] args) {Thread thread1 new Thread(new MyRunnable());Thread thread2 new Thread(new MyRunnable());thread1.start(); // 启动线程1thread2.start(); // 启动线程2}}推荐使用实现Runnable接口的方式- Java不支持多重继承实现接口更灵活- 代码和线程控制分离更符合面向对象设计原则- 适合多个线程处理同一资源的情况二线程的常用方法1. start() - 启动线程调用start()方法会启动新线程并执行run()方法。注意不要直接调用run()方法否则它会在当前线程中执行而不是新线程。Thread thread new Thread(new MyRunnable());thread.start(); // 正确方式// thread.run(); // 错误方式 - 不会启动新线程2. sleep() - 线程休眠让当前线程暂停执行指定的时间毫秒但不会释放锁。关于锁我会在后续博客中进行讲解try {Thread.sleep(1000); // 休眠1秒} catch (InterruptedException e) {e.printStackTrace();}需要设置在指定的线程方法中更能精准的操控线程的运行3. join() - 等待线程结束等待调用该方法的线程执行完毕当前线程才会继续执行。Thread thread new Thread(new MyRunnable());thread.start();try {thread.join(); // 等待thread线程执行完毕System.out.println(thread线程已执行完毕);} catch (InterruptedException e) {e.printStackTrace();}4. interrupt() - 中断线程向线程发送中断信号但线程是否中断取决于其实现。Thread thread new Thread(() - {while (!Thread.currentThread().isInterrupted()) {// 检查中断状态System.out.println(线程运行中...);try {Thread.sleep(1000);} catch (InterruptedException e) {// 捕获中断异常后中断状态会被清除System.out.println(线程被中断);Thread.currentThread().interrupt(); // 重新设置中断状态}}System.out.println(线程结束);});thread.start();// 3秒后中断线程try {Thread.sleep(3000);thread.interrupt(); // 中断线程} catch (InterruptedException e) {e.printStackTrace();}三线程的生命周期线程有以下几种状态1. **NEW**新建状态线程被创建但尚未启动2. **RUNNABLE**可运行状态线程正在JVM中执行或等待系统资源3. **BLOCKED**阻塞状态线程等待监视器锁4. **WAITING**等待状态线程无限期等待其他线程执行特定操作5. **TIMED_WAITING**超时等待状态线程在指定时间内等待6. **TERMINATED**终止状态线程已执行完毕四守护线程守护线程是为用户线程提供服务的后台线程当所有用户线程结束时守护线程会自动终止。Thread daemonThread new Thread(new MyRunnable());daemonThread.setDaemon(true); // 设置为守护线程daemonThread.start();多线程编程是一个复杂但强大的主题掌握Thread类的基本用法是学习更高级并发编程的基础。在实际开发中还需要注意线程安全、死锁、性能等问题。
RELATED

相关推荐

Spark-X2.5-4B-INT8工具调用实战:用SGLang spark25解析器构建Agent工作流完整教程

Spark-X2.5-4B-INT8工具调用实战:用SGLang spark25解析器构建Agent工作流完整教程

【免费下载链接】Spark-X2.5-4B-INT8 项目地址: https://ai.gitcode.com/SparkLLM/Spark-X2.5-4B-INT8 点击查看 免费下载 Spark-X2.5-4B-INT8 是一款 4B 级别的开源小模型(INT8 量化版),主打工具调用(Tool Calling&a…

📅 2026/10/22 12:31:07
5分钟给PS3游戏打上中文:RPCS3汉化补丁系统实战走查

5分钟给PS3游戏打上中文:RPCS3汉化补丁系统实战走查

5分钟给PS3游戏打上中文:RPCS3汉化补丁系统实战走查 【免费下载链接】rpcs3 PlayStation 3 emulator and debugger 项目地址: https://gitcode.com/GitHub_Trending/rp/rpcs3 RPCS3 内置了一套补丁系统(Patch Manager),配合…

📅 2026/10/22 12:31:07
MMLU 86.65%实测!GLM-5.3-CYBERSECURITY-FP8智能保留度基准测试:去除拒绝会掉智商吗?

MMLU 86.65%实测!GLM-5.3-CYBERSECURITY-FP8智能保留度基准测试:去除拒绝会掉智商吗?

大模型网络安全红蓝对抗模型安全 【免费下载链接】GLM-5.3-CYBERSECURITY-FP8 项目地址: https://ai.gitcode.com/hf_mirrors/dealignai/GLM-5.3-CYBERSECURITY-FP8 点击查看 免费下载 🔍 GLM-5.3-CYBERSECURITY-FP8 是 dealignai 基于 753B 参数 MoE 大…

📅 2026/10/22 12:31:07
MORE NEWS

更多资讯

📰

深入了解C++函数重载解析策略

前言 函数重载让同一个名字可以对应多组参数,调用时由编译器挑出唯一匹配的那个。多数时候它工作得很自然,但一旦涉及隐式转换、继承、模板和默认参数,选中的函数经常和直觉相反。更麻烦的是,选错未必报错——有时它能编过&#x…

📰

智能体手机Agent开发实战:从提示词到API接入的完整指南

智能体手机喊了快两年,能不能正经开发一个 Agent,而不是只在发布会 PPT 里点外卖?这篇文章直接用阶跃 STEPX Neo 走一遍完整流程:起一个自己的智能体、配提示词和工作流、接 API 测试稳定性,最后聊清楚这种“智能体手机…

📰

用Claude Code零代码建站,免费静态托管上线全流程指南

如果你一直想做自己的网站,但看到代码就头疼,这可能是 2026 年最值得试的一条路:用 Claude Code 帮你写网站,再通过免费的静态托管服务直接上线。整个过程不需要你手写 HTML、CSS 或 JavaScript,只需要会描述需求、会复…

📰

如何用 Git-AI 工作流解决多智能体并行开发的合并冲突

当多个 AI 编程智能体同时参与同一个仓库的开发时,最让人头疼的往往不是代码质量,而是 Git 合并。 一个智能体在重构公共工具类,另一个在改业务模块,第三个在调整测试用例。三者并行推进各自的分支时看起来一切正常,可…

📰

无标定动态视觉伺服:不依赖标定/速度/深度的机械手闭环控制

简介:本资源是一篇聚焦机器人视觉伺服前沿方向的博士论文全文,面向自动化、机器人学、控制理论等领域的研究生与科研人员,重点解决机械手在缺乏精确系统标定条件下的动态视觉伺服控制难题。论文系统梳理了无标定视觉伺服的技术脉络&#xff0…

📰

GPS-RTK高速公路测量实战:从原理到避坑的完整指南

简介:这份PDF文献围绕GPS-RTK技术在高速公路测量中的实际应用展开,面向测绘工程、道路设计及施工测量领域的技术人员与相关专业学生,重点解决复杂地形与高秆农作物遮挡条件下常规全站仪难以通视、控制点间隔远、工期紧张等测量难题。全文以朝…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬