news 2025/12/21 11:16:12

【Java多线程并发编程深度解析】

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【Java多线程并发编程深度解析】

前言

在现代软件开发中,多线程并发编程是提升应用性能的关键技术。本文将深入探讨Java并发编程的核心概念、常用工具类以及实战技巧,帮助你掌握高并发场景下的编程能力。


一、线程基础与生命周期

1.1 创建线程的三种方式

方式一:继承Thread类
publicclassMyThreadextendsThread{@Overridepublicvoidrun(){System.out.println("线程名称: "+Thread.currentThread().getName());System.out.println("线程正在执行...");}publicstaticvoidmain(String[]args){MyThreadthread=newMyThread();thread.start();// 启动线程}}
方式二:实现Runnable接口(推荐)
publicclassMyRunnableimplementsRunnable{@Overridepublicvoidrun(){for(inti=0;i<5;i++){System.out.println(Thread.currentThread().getName()+" - "+i);}}publicstaticvoidmain(String[]args){MyRunnablerunnable=newMyRunnable();Threadthread1=newThread(runnable,"线程1");Threadthread2=newThread(runnable,"线程2");thread1.start();thread2.start();}}
方式三:实现Callable接口(有返回值)
importjava.util.concurrent.*;publicclassMyCallableimplementsCallable<Integer>{@OverridepublicIntegercall()throwsException{intsum=0;for(inti=1;i<=100;i++){sum+=i;}returnsum;}publicstaticvoidmain(String[]args)throwsExecutionException,InterruptedException{MyCallablecallable=newMyCallable();FutureTask<Integer>futureTask=newFutureTask<>(callable);Threadthread=newThread(futureTask);thread.start();// 获取返回结果(会阻塞直到任务完成)Integerresult=futureTask.get();System.out.println("计算结果: "+result);}}

1.2 线程生命周期

线程在其生命周期中会经历以下状态:

  1. NEW(新建):线程对象创建后的初始状态
  2. RUNNABLE(可运行):调用start()后,线程可能正在运行或等待CPU分配时间
  3. BLOCKED(阻塞):等待获取监视器锁
  4. WAITING(等待):无限期等待另一个线程执行特定操作
  5. TIMED_WAITING(超时等待):有时限的等待
  6. TERMINATED(终止):线程执行完毕
publicclassThreadStateDemo{publicstaticvoidmain(String[]args)throwsInterruptedException{Threadthread=newThread(()->{try{Thread.sleep(2000);}catch(InterruptedExceptione){e.printStackTrace();}})
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2025/12/20 2:31:57

[Python] 使用 Tesseract 实现 OCR 文字识别全流程指南

在图像处理、文档数字化、发票识别等场景中&#xff0c;OCR&#xff08;Optical Character Recognition&#xff0c;光学字符识别&#xff09;技术应用广泛。而在 Python 中&#xff0c;借助开源工具 Tesseract&#xff0c;我们可以快速构建强大的文字识别系统。 本文将手把手…

作者头像 李华
网站建设 2025/12/20 2:29:55

Langchain-Chatchat构建电力行业规程查询系统案例

基于 Langchain-Chatchat 构建电力行业智能规程查询系统 在电力系统运行维护中&#xff0c;技术人员每天都要面对大量技术标准、安全规程和操作手册。比如《电力安全工作规程》这类文件动辄上百页&#xff0c;查找“高压设备停电检修的安全措施”可能需要翻阅多个章节&#xff…

作者头像 李华
网站建设 2025/12/20 2:28:36

Cisco 300-515 認證考試介紹(CCNP Service Provider 專項

背景概述思科&#xff08;Cisco&#xff09;旗下的 300-535 Automating and Programming Cisco Service Provider Solutions&#xff08;SPAUTO&#xff09;認證考試&#xff0c;是獲取 CCNP Service Provider 與 Certified DevNet Professional 等高級專業認證的核心組成部分。…

作者头像 李华
网站建设 2025/12/20 2:28:25

70、Windows 7系统维护与问题解决全攻略

Windows 7系统维护与问题解决全攻略 1. 系统清理 1.1 程序清理与系统还原清理 系统中存在许多不再使用的程序和多余的系统还原点、影子副本,占用了大量磁盘空间。程序清理可以移除不用的程序,系统还原和影子副本清理则能删除除最新还原点和影子副本之外的所有内容。 在进…

作者头像 李华
网站建设 2025/12/20 2:28:24

71、Windows 7 系统问题检测、解决与备份指南

Windows 7 系统问题检测、解决与备份指南 1. 系统诊断框架介绍 Windows 7 内置了强大的诊断框架,旨在监控操作系统和计算机硬件组件。该框架包含多个组件,具体如下: | 组件名称 | 功能描述 | | — | — | | 应用兼容性警报 | 警告可能不兼容的程序 | | 磁盘故障监控 |…

作者头像 李华
网站建设 2025/12/20 2:28:22

72、Windows 7 数据备份与恢复指南

Windows 7 数据备份与恢复指南 在使用 Windows 7 操作系统时,数据备份和恢复是保障系统稳定和数据安全的重要环节。本文将详细介绍如何创建手动还原点、配置自动备份、管理备份设置以及在遇到问题时如何进行数据恢复。 1. 创建手动还原点 为开启系统保护的所有驱动器创建手…

作者头像 李华