当前位置:网站首页 > Java基础 > 正文

java基础多线程学习



多线程大家在初学的时候,对这个知识点应该有不少的疑惑的。我认为主要原因有两个:

  • 多线程在初学的时候不太好学,并且一般写项目的时候也很少用得上(至少在初学阶段时写的项目基本不需要自己创建线程)。

  • 多线程的知识点在面试经常考,多线程所涉及的知识点非常多,难度也不低。

这就会给人带来一种感觉「这破玩意涉及的东西是真的广,平时也不怎么用,怎么面试就偏偏爱问这个鬼东西

不多BB,我要开始了。

Java多线程知识点总结(思维导图+源码笔记),已整理成PDF版文档


多线程知识重要吗?

我们日常「关于多线程的代码」写得不多,但是我们写的程序代码的的确确是在多线程的环境下跑的。

如果我们不懂多线程知识,很直接的一个现实:

Java多线程知识点总结(思维导图+源码笔记),已整理成PDF版文档

从开头的思维导图里我们可以发现多线程的知识点还是很多的,我们起码得知道:

  • 线程和进程的区别

  • Thead类的常见方法

  • 可以用什么手段来解决线程安全性问题

  • Synchronized和Lock锁的区别

  • 什么是AQS、ReentrantLock和ReentrantReadWriteLock锁

  • JDK自带的线程池有哪几个,线程池的构造方法重要的参数

  • 什么是死锁,怎么避免死锁

  • CountDownLatch、CyclicBarrier、Semaphore是什么?

  • Atomic包下的常见子类,什么是CAS,CAS会有什么问题

  • ThreadLocal是什么?

  • …https://www.bilibili.com/read//

虽然在工作中未必会全部用得上,但如果项目真的用到了,我们如果学过了可能就可以很快地理解当时为什么要这样设计(我觉得去挖掘过程还是挺有意思的)。

我可能不用,但你必须要有

这个道理也很容易懂:「我买电脑的时候,虽然我是木耳听不出什么音质出来,但你音质就是得好」。企业招人的时候也一样「你在工作的时候未必要写,但你必须要会

至少在我看来,从求职的角度出发,多线程是很重要的。之前我还整理过在我当时校招经常被问到的多线程面试题目:

  1. 多线程了解多少啊?使用多线程会有什么问题?你是怎么理解“线程安全”的?

  2. 如果我现在想要某个操作等待线程结束之后才执行,有什么方法可以实现?为什么要用CountDownLatch?CountDownLatch的底层是什么?(引出AQS)

  3. synchronized关键字来说一下,它的用途是什么?synchronized底层的原理是什么?

  4. 线程安全的容器有哪些?(着重于ConcurrentHashMap、CopyWriteOnArrayList与其他非线程安全容器的区别以及它们的具体实现)

  5. ThreadLocal你了解过吗?主要是用来干什么的?具体的源码实现原理来说一下吧

  6. 产生死锁的条件是什么?我们可以如何避免死锁?(可延伸到操作系统层面上的死锁)

  7. synchronized锁和ReentrantLock锁有什么区别呀?

  8. 线程池你应该也看过吧,来说说为什么要用线程池。JDK默认实现了几个线程池,分别有xxx(自然地ThreadPoolExecutor构造函数的常用几个参数你也得一起说出来)

点赞+关注,然后【查看我的主页信息添加我的VX】即可获得《Java多线程知识点总结》PDF文档资料的免费领取方式!

一、什么是多线程

初识多线程

  • 1.1介绍进程

  • 1.2回到线程

  • 1.3进程与线程

  • 1.4并行与并发

  • 1.5Java实现多线程

  • 1.6Java实现多线程需要注意的细节

Java多线程知识点总结(思维导图+源码笔记),已整理成PDF版文档


二、Thread类解析

Thread线程类API

  • 1.2守护线程

  • 1.3优先级线程

  • 1.4线程生命周期

Java多线程知识点总结(思维导图+源码笔记),已整理成PDF版文档


三、使用多线程需要注意的问题

  • 1、使用多线程遇到的问题

  • 2、对象的发布与逸出

  • 3、解决多线程遇到的问题

  • 4、多线程需要注意的事 -总结

Java多线程知识点总结(思维导图+源码笔记),已整理成PDF版文档


四、synchronized锁和lock锁

  • 1、synchronized锁

  • 2、Lock显式锁

  • 3、Java锁简单总结

Java多线程知识点总结(思维导图+源码笔记),已整理成PDF版文档


五、AQS

  • 1、AQS是什么?

  • 2、简单看看AQS

Java多线程知识点总结(思维导图+源码笔记),已整理成PDF版文档


六、ReentrantLock和ReentrantReadWriteLock

  • 1、ReentrantLock锁

  • 2、ReentrantReadWriteLock

  • 3、最后

Java多线程知识点总结(思维导图+源码笔记),已整理成PDF版文档


七、线程池

  • 1、线程池简介

  • 2、JDK提供的线程池API

  • 3、ThreadPoolExecutor详解

  • 4、execute执行方法

  • 5、线程池关闭

Java多线程知识点总结(思维导图+源码笔记),已整理成PDF版文档


八、死锁

java基础多线程学习

  • 1、死锁讲解

  • 2、避免死锁的方法

  • 3、死锁总结

Java多线程知识点总结(思维导图+源码笔记),已整理成PDF版文档


九、线程常用的工具类

  • 1、CountDownLatch

  • 2、CyclicBarrier

  • 3、Semaphore

  • 4、总结

Java多线程知识点总结(思维导图+源码笔记),已整理成PDF版文档


十、Atomic

  • 1、基础铺垫

  • 2、原子变量类简单介绍

Java多线程知识点总结(思维导图+源码笔记),已整理成PDF版文档


十一、ThreadLocal

  • 1、什么是ThreadLocal

  • 2、为什么要学习ThreadLocal?

  • 3、ThreadLocal实现的原理

  • 4、避免内存泄露

  • 5、总结

Java多线程知识点总结(思维导图+源码笔记),已整理成PDF版文档


放干货

PDF的内容非常非常长,干货非常非常的硬,有兴趣的读者可以浏览一波。共有「129」页

Java多线程知识点总结(思维导图+源码笔记),已整理成PDF版文档

版权声明


相关文章:

  • 有java基础做小程序很难吗2024-10-19 14:18:05
  • java零基础强制类型转换2024-10-19 14:18:05
  • 测试java基础2024-10-19 14:18:05
  • Java四大基础类2024-10-19 14:18:05
  • java零基础聊天室2024-10-19 14:18:05
  • 计算机基础与java2024-10-19 14:18:05
  • java基础入门大纲2024-10-19 14:18:05
  • 锻炼Java基础的游戏2024-10-19 14:18:05
  • vscode如何查看java基础类2024-10-19 14:18:05
  • java的50道基础算法题2024-10-19 14:18:05