news 2025/12/25 8:24:13

【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/21 16:21:37

Python Selenium实现自动化测试及Chrome驱动使用

在软件开发过程中&#xff0c;自动化测试是一个至关重要的环节&#xff0c;可以有效地提高测试效率、减少人工测试成本&#xff0c;并且能够在短时间内发现潜在的问题。而Python中的Selenium库则是一个强大的自动化测试工具&#xff0c;可以模拟用户在浏览器中的操作&#xff0…

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

PMP有必要转CSPM证书吗?解惑!

根据规定&#xff0c;自2023年6月起&#xff0c;持有PMP证书的朋友可以不用通过考试&#xff0c;直接申请增持一个同等级证书CSPM-2&#xff0c;原PMP证书不影响正常使用&#xff0c;相当于多了一个国标项目管理证书。CSPM是由中国标准化协会&#xff08;全国项目管理标准化技术…

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

Langchain-Chatchat能否实现自动纠错用户提问?

Langchain-Chatchat能否实现自动纠错用户提问&#xff1f; 在企业智能问答系统日益普及的今天&#xff0c;一个现实而棘手的问题摆在开发者面前&#xff1a;普通员工提出的咨询往往夹杂错别字、口语表达甚至语法混乱——比如“年价怎么休”、“加班资陪算吗”。如果系统对这类…

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

4种安全方法将短信从三星转移到iQOO

升级到iQOO设备并希望保留短信历史记录而不丢失重要对话&#xff0c;是许多三星用户常见的需求。短信中通常包含收据、确认信息、密码或工作相关内容&#xff0c;用户需要保留这些信息。本文将指导您如何高效地将短信从三星转移到iQOO&#xff0c;介绍四种可靠的方法来完成此任…

作者头像 李华
网站建设 2025/12/21 7:12:35

81、深入了解Windows Media Center的设置与优化

深入了解Windows Media Center的设置与优化 在使用Windows Media Center时,合理的设置能够极大提升使用体验。下面将详细介绍其各项设置的操作方法和作用。 1. 更改视频背景颜色 你可以通过选择“视频背景颜色”下的“ - ”号或“ + ”号来更改视频背景颜色。这会将黑色设置…

作者头像 李华
网站建设 2025/12/23 4:32:39

如何编写测试用例?

&#x1f345; 点击文末小卡片&#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快在软件测试中&#xff0c;测试用例是执行测试的重要依据&#xff0c;它的质量直接影响测试的效果。那么&#xff0c;如何编写高质量的测试用例呢&#xff1f;本文将…

作者头像 李华