news 2026/4/18 9:37:12

java多线程,零基础入门到精通,收藏这篇就够了

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
java多线程,零基础入门到精通,收藏这篇就够了

何时需要多线程

  1. 程序需要同时执行两个或多个任务
  2. 程序需要实现一些需要等待的任务时,如用户输入、文件读写、网络操作
  3. 需要一些后台运行的程序

有两种方法来实现多线程(最优的是第二张实现runnable的方法)

* 创建多线程的第一种方式:继承java.lang.Thread类

//1.创建一个继承于Thread的子类 class SubThread extends Thread{ //2.重写Thread类的run()方法.方法内实现此子线程要完成的功能 public void run(){ for(int i = 1;i <= 100;i++){ System.out.println(Thread.currentThread().getName() +":" + i); } } } public class TestThread { public static void main(String[] args) { //3.创建子类的对象 SubThread st1 = new SubThread(); SubThread st2 = new SubThread(); //4.调用线程的start():启动此线程;调用相应的run()方法 //一个线程只能够执行一次start() //不能通过Thread实现类对象的run()去启动一个线程 st1.start(); //st.start(); //st.run(); st2.start(); for(int i = 1;i <= 100;i++){ System.out.println(Thread.currentThread().getName() +":" + i); } } }

匿名类实现多线程,直接new Thread()然后重写run方法:

public static void main(String[] args) { new Thread() { public void run() { synchronized (sb1) { try { Thread.currentThread().sleep(10); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } sb1.append("A"); synchronized (sb2) { sb2.append("B"); System.out.println(sb1); System.out.println(sb2); } } } }.start(); }

创建多线程的方式二:通过实现Runnable的方式

* 对比一下继承的方式 vs 实现的方式
* 1.联系:public class Thread implements Runnable
* 2.哪个方式好?实现的方式优于继承的方式
* why? ① 避免了java单继承的局限性
* ② 如果多个线程要操作同一份资源(或数据),更适合使用实现的方式

//1.创建一个实现了Runnable接口的类 class PrintNum1 implements Runnable { //2.实现接口的抽象方法 public void run() { // 子线程执行的代码 for (int i = 1; i <= 100; i++) { if (i % 2 == 0) { System.out.println(Thread.currentThread().getName() + ":" + i); } } } } public class TestThread1 { public static void main(String[] args) { //3.创建一个Runnable接口实现类的对象 PrintNum1 p = new PrintNum1(); // p.start(); // p.run(); //要想启动一个多线程,必须调用start() //4.将此对象作为形参传递给Thread类的构造器中,创建Thread类的对象,此对象即为一个线程 Thread t1 = new Thread(p); //5.调用start()方法:启动线程并执行run() t1.start();//启动线程;执行Thread对象生成时构造器形参的对象的run()方法。 //再创建一个线程 Thread t2 = new Thread(p); t2.start(); } }

由上图可见,Thread也是现实了Runnable的接口方法run()

Thread方法的构造器中也有一个接收Runnable的方法,所以可以直接implement一个Runnable类,实例化后传入Thread构造方法。


Thread的常用方法:
* 1.start():启动线程并执行相应的run()方法
* 2.run():子线程要执行的代码放入run()方法中
* 3.currentThread():静态的,调取当前的线程
* 4.getName():获取此线程的名字
* 5.setName():设置此线程的名字
* 6.yield():调用此方法的线程释放当前CPU的执行权
* 7.join():在A线程中调用B线程的join()方法,表示:当执行到此方法,A线程停止执行,直至B线程执行完毕,
* A线程再接着join()之后的代码执行
* 8.isAlive():判断当前线程是否还存活
* 9.sleep(long l):显式的让当前线程睡眠l毫秒
* 10.线程通信:wait() notify() notifyAll()
*
* 设置线程的优先级
* getPriority() :返回线程优先值
setPriority(int newPriority) :改变线程的优先级

class SubThread1 extends Thread { public void run() { for (int i = 1; i <= 100; i++) { // try { // Thread.currentThread().sleep(1000); // } catch (InterruptedException e) { // // TODO Auto-generated catch block // e.printStackTrace(); // } System.out.println(Thread.currentThread().getName() + ":" + Thread.currentThread().getPriority() + ":" + i); } } } public class TestThread1 { public static void main(String[] args) { SubThread1 st1 = new SubThread1(); st1.setName("子线程1"); st1.setPriority(Thread.MAX_PRIORITY); st1.start(); Thread.currentThread().setName("========主线程"); for (int i = 1; i <= 100; i++) { System.out.println(Thread.currentThread().getName() + ":" + Thread.currentThread().getPriority() + ":" + i); // if(i % 10 == 0){ // Thread.currentThread().yield(); // } // if(i == 20){ // try { // st1.join(); // } catch (InterruptedException e) { // // TODO Auto-generated catch block // e.printStackTrace(); // } // } } System.out.println(st1.isAlive()); } }

Java开发的就业市场正在经历结构性调整,竞争日益激烈

传统纯业务开发岗位(如仅完成增删改查业务的后端工程师)的需求,特别是入门级岗位,正显著萎缩。随着企业技术需求升级,市场对Java人才的要求已从通用技能转向了更深入的领域经验(如云原生、微服务)或前沿的AI集成能力。这也导致岗位竞争加剧,在一、二线城市,求职者不仅面临技术内卷,还需应对学历与项目经验的高门槛。

大模型为核心的AI领域正展现出前所未有的就业热度与人才红利

2025年,AI相关新发岗位数量同比激增543%,单月增幅最高超过11倍,大模型算法工程师位居热门岗位前列。行业顶尖人才的供需严重失衡,议价能力极强,跳槽薪资涨幅可达30%-50%。值得注意的是,市场并非单纯青睐算法研究员,而是急需能将大模型能力落地于复杂业务系统的工程人才。这使得具备企业级架构思维和复杂系统整合经验的Java工程师,在向“Java+大模型”复合人才转型时拥有独特优势,成为企业竞相争夺的对象,其薪资天花板也远高于传统Java岗位。

说真的,这两年看着身边一个个搞Java、C++、前端、数据、架构的开始卷大模型,挺唏嘘的。大家最开始都是写接口、搞Spring Boot、连数据库、配Redis,稳稳当当过日子。

结果GPT、DeepSeek火了之后,整条线上的人都开始有点慌了,大家都在想:“我是不是要学大模型,不然这饭碗还能保多久?”

先给出最直接的答案:一定要把现有的技术和大模型结合起来,而不是抛弃你们现有技术!掌握AI能力的Java工程师比纯Java岗要吃香的多。

即使现在裁员、降薪、团队解散的比比皆是……但后续的趋势一定是AI应用落地!大模型方向才是实现职业升级、提升薪资待遇的绝佳机遇!

如何学习AGI大模型?

作为一名热心肠的互联网老兵,我决定把宝贵的AI知识分享给大家。 至于能学习到多少就看你的学习毅力和能力了 。我已将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

2025最新版CSDN大礼包:《AGI大模型学习资源包》免费分享**

一、2025最新大模型学习路线

一个明确的学习路线可以帮助新人了解从哪里开始,按照什么顺序学习,以及需要掌握哪些知识点。大模型领域涉及的知识点非常广泛,没有明确的学习路线可能会导致新人感到迷茫,不知道应该专注于哪些内容。

我们把学习路线分成L1到L4四个阶段,一步步带你从入门到进阶,从理论到实战。

L1级别:AI大模型时代的华丽登场

L1阶段:我们会去了解大模型的基础知识,以及大模型在各个行业的应用和分析;学习理解大模型的核心原理,关键技术,以及大模型应用场景;通过理论原理结合多个项目实战,从提示工程基础到提示工程进阶,掌握Prompt提示工程。

L2级别:AI大模型RAG应用开发工程

L2阶段是我们的AI大模型RAG应用开发工程,我们会去学习RAG检索增强生成:包括Naive RAG、Advanced-RAG以及RAG性能评估,还有GraphRAG在内的多个RAG热门项目的分析。

L3级别:大模型Agent应用架构进阶实践

L3阶段:大模型Agent应用架构进阶实现,我们会去学习LangChain、 LIamaIndex框架,也会学习到AutoGPT、 MetaGPT等多Agent系统,打造我们自己的Agent智能体;同时还可以学习到包括Coze、Dify在内的可视化工具的使用。

L4级别:大模型微调与私有化部署

L4阶段:大模型的微调和私有化部署,我们会更加深入的探讨Transformer架构,学习大模型的微调技术,利用DeepSpeed、Lamam Factory等工具快速进行模型微调;并通过Ollama、vLLM等推理部署框架,实现模型的快速部署。

整个大模型学习路线L1主要是对大模型的理论基础、生态以及提示词他的一个学习掌握;而L3 L4更多的是通过项目实战来掌握大模型的应用开发,针对以上大模型的学习路线我们也整理了对应的学习视频教程,和配套的学习资料。

二、大模型经典PDF书籍

书籍和学习文档资料是学习大模型过程中必不可少的,我们精选了一系列深入探讨大模型技术的书籍和学习文档,它们由领域内的顶尖专家撰写,内容全面、深入、详尽,为你学习大模型提供坚实的理论基础(书籍含电子版PDF)

三、大模型视频教程

对于很多自学或者没有基础的同学来说,书籍这些纯文字类的学习教材会觉得比较晦涩难以理解,因此,我们提供了丰富的大模型视频教程,以动态、形象的方式展示技术概念,帮助你更快、更轻松地掌握核心知识

四、大模型项目实战

学以致用,当你的理论知识积累到一定程度,就需要通过项目实战,在实际操作中检验和巩固你所学到的知识,同时为你找工作和职业发展打下坚实的基础。

五、大模型面试题

面试不仅是技术的较量,更需要充分的准备。

在你已经掌握了大模型技术之后,就需要开始准备面试,我们将提供精心整理的大模型面试题库,涵盖当前面试中可能遇到的各种技术问题,让你在面试中游刃有余。


因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

2025最新版CSDN大礼包:《AGI大模型学习资源包》免费分享

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/15 12:43:12

一键降AI工具横评:4款懒人必备的降AI利器

一键降AI工具横评&#xff1a;4款懒人必备的降AI利器 TL;DR&#xff1a;手动改论文降AI太累&#xff1f;一键降AI工具才是2026年的正确打开方式。本文横评4款「傻瓜式」降AI工具&#xff1a;嘎嘎降AI&#xff08;4.8元/千字&#xff0c;达标率99.26%&#xff09;、比话降AI&…

作者头像 李华
网站建设 2026/3/27 6:03:26

本科生论文降AI工具测评:5款平价好用的选择

本科生论文降AI工具测评&#xff1a;5款平价好用的选择 TL;DR&#xff1a;本科生学校一般要求AI率控制在20%-30%以下&#xff0c;选降AI工具要在保证效果的前提下省钱。本文测评5款适合学生党的平价工具&#xff1a;嘎嘎降AI&#xff08;4.8元/千字&#xff0c;达标率99.26%&am…

作者头像 李华
网站建设 2026/4/17 22:38:41

Z-Image-Turbo_UI界面快速搭建指南:适合新手入门

Z-Image-Turbo_UI界面快速搭建指南&#xff1a;适合新手入门 1. 开篇&#xff1a;三分钟上手&#xff0c;零基础也能玩转图像生成 你是不是也遇到过这些情况&#xff1f; 想试试最新的AI图像生成模型&#xff0c;但看到“conda环境”“CUDA版本”“diffusers库”就头皮发麻&a…

作者头像 李华
网站建设 2026/4/12 8:01:31

零基础入门:用快马平台轻松学会API测试(替代Postman)

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 开发一个交互式API测试学习应用&#xff0c;包含&#xff1a;1. 基础HTTP方法教程 2. 可视化请求构建器 3. 实时响应展示 4. 常见错误示例 5. 渐进式练习任务。要求界面简洁友好&a…

作者头像 李华
网站建设 2026/4/18 8:29:02

零基础入门语音端点检测:FSMN-VAD控制台保姆级教程

零基础入门语音端点检测&#xff1a;FSMN-VAD控制台保姆级教程 你是否遇到过这样的问题&#xff1a;一段10分钟的会议录音&#xff0c;真正说话的内容可能只有3分钟&#xff0c;其余全是静音、咳嗽、翻纸声&#xff1f;想把音频喂给语音识别模型&#xff0c;结果识别结果里塞满…

作者头像 李华
网站建设 2026/4/18 6:45:37

WE Learn自动答题工具深度测评:如何用技术手段提升300%学习效率

WE Learn自动答题工具深度测评&#xff1a;如何用技术手段提升300%学习效率 【免费下载链接】WELearnHelper 显示WE Learn随行课堂题目答案&#xff1b;支持班级测试&#xff1b;自动答题&#xff1b;刷时长&#xff1b;基于生成式AI(ChatGPT)的答案生成 项目地址: https://g…

作者头像 李华