
多线程学习之路
文章平均质量分 96
本专栏主要记录本人在学习Java多线程的过程中学习笔记.
慧天城寻
一个普通大学生,随缘记录学习笔记
展开
-
【多线程进阶】线程安全的集合类
本文主要讲解 Java 线程安全的集合类, 在之前学习过的集合类中, 只有 Vector, Stack, HashTable, 是线程安全的, 因为在他们的关键方法中, 都使用了 synchronized 去实现, 而其他的集合类都不是线程安全的. 但在多线程开发下, 保证线程安全又必不可找, 因此我们无法避免使用线程安全的集合类.✨ 本文重点讲了 Java 中一些线程安全的集合类, 在并发编程中时很有用的, 请大家熟悉.多线程学习专栏, 里面会持续更新本人的学习记录, 跟随我一起不断学习.!!!原创 2023-10-09 16:07:57 · 301 阅读 · 2 评论 -
【多线程进阶】JUC中常见类
本文主要讲解 JUC ---- java.util.concurrent 中的一些常见类. concurrent 就是并发的意思, 所以该类中放的都是一些多线程并发编程, 常常使用到的东西.✨ 本文主要讲解了 JUC 中的一些常见类, 需要掌握 Callable 接口, ReentrantLock 锁, 原子类, 线程池, 信号量以及 CountDownLatch.多线程学习专栏, 里面会持续更新本人的学习记录, 跟随我一起不断学习.!!!!原创 2023-10-08 08:01:55 · 309 阅读 · 2 评论 -
【多线程进阶】CAS实现及应用
上文讲解 synchronized 当提到自旋锁时, 讲到当其他线程进入竞争, 偏向锁状态被消除, 就会进入轻量级锁状态(自适应的自旋锁) , 而 Java 中自旋锁其实背后原理就是 CAS 来实现的, 本文我们就来重点讲解一下 CAS 背后的机制.CAS, 全称Compare and swap,字面意思: “比较并交换”,能够比较和交换某个寄存器中的值, 和内存中的值是否相等. 如果相等, 则把另一个寄存器中的值和内存进行交换.CAS 是单条 CPU 指令, 是不可拆分的.原创 2023-10-07 09:03:48 · 1442 阅读 · 3 评论 -
【多线程进阶】synchronized 原理
在前面章节中, 提到了多线程中的锁策略, 那么我们 Java 中的锁 synchronized 背后都采取了哪些锁策略呢?又是如何进行工作的呢?本节我们就来谈一谈. 本文主要讲解了 Java 中 synchronized 锁的一些原理, 是如何进行加锁的, 加锁工程又是怎样的, 以及一些内部的优化操作.多线程学习专栏, 里面会持续更新本人的学习记录, 跟随我一起不断学习.!!!!原创 2023-10-06 14:04:16 · 359 阅读 · 1 评论 -
【多线程进阶】死锁问题
上文锁策略中, 当谈到可重入锁和不可重入锁时, 我们引入了一个 “死锁” 的概念,当针对一把不可重入锁进行连续两次的加锁行为时, 就会产生死锁.本文就重点来讲解一下关于死锁的一些知识.在锁策略中, 我们提到过死锁这一概念, 死锁是这样一种情形:多个线程同时被阻塞, 它们中的一个或者全部都在等待某个资源被释放.由于线程被无限期地阻塞, 因此程序不可能正常终止.原创 2023-10-04 17:32:22 · 414 阅读 · 4 评论 -
【多线程进阶】常见的锁策略
本章节所讲解的锁策略不仅仅是局限于 Java . 任何和 “锁” 相关的话题, 都可能会涉及到以下内容. 这些特性主要是给锁的实现者来参考的.本文中讲解的锁, 并不是指某个具体的锁, 而是一个抽象的概念, 描述的是 “一类锁”. 即使是普通的程序猿也需要了解一些, 对于合理的使用锁也是有很大帮助的.原创 2023-10-01 23:11:34 · 507 阅读 · 6 评论 -
【多线程初阶】多线程案例之线程池
本文主要给大家讲解多线程的一个重要案例 — 线程池.在讲解线程池是什么之前, 我们先简单聊一聊 “池” 的概念, 在我们学习中, “池” 是一个非常重要的思想方法, 之前听过有内存池, 进程池, 连接池, 常量池等等, 这里的 “池” 其实本质概念上都是一样的.原创 2023-09-30 14:12:27 · 387 阅读 · 4 评论 -
【多线程初阶】多线程案例之定时器
本文主要给大家讲解多线程的一个重要案例 — 定时器.定时器也是软件开发中的一个重要组件 类似于一个 “闹钟”. 达到一个设定的时间之后, 就执行某个指定好的代码.定时器是一种实际开发中非常常用的组件, 前端后端开发都会使用到.比如网络通信中, 如果对方 500ms 内没有返回数据, 则断开连接尝试重连.比如一个 Map, 希望里面的某个 key 在 3s 之后过期(自动删除). 类似于这样的场景就需要用到定时器.原创 2023-09-28 09:12:30 · 209 阅读 · 4 评论 -
【多线程初阶】多线程案例之阻塞式队列
本文主要给大家讲解多线程的一个重要案例 — 阻塞式队列.阻塞队列是一种特殊的队列. 也遵守“先进先出”(First In First Out)的原则.这是一种非常典型的开发模型, 作为一种处理多线程问题的方式.原创 2023-09-25 16:04:46 · 435 阅读 · 4 评论 -
【多线程初阶】多线程案例之单例模式
本文主要给大家讲解多线程的一个重要案例 — 单例模式.单例模式是一种很经典的设计模式. 重点讲解单例模式中的饿汉模式和懒汉模式, 如何使其在多线程环境下也是安全的.原创 2023-08-02 12:52:57 · 1424 阅读 · 0 评论 -
【多线程初阶】线程安全问题
本文要讲的知识是多线程内容的重点, 多线程带来的风险 - 线程安全及相应的解决方法, 还有涉及到的 synchronized 和 volatile 关键字的知识, 以及 wait() 和 notify() 方法.原创 2023-07-24 09:41:45 · 761 阅读 · 4 评论 -
【多线程初阶】Thread类常见方法以及线程的状态
本文是属于多线程初阶内容系列的, 如果还没有学习过之前文章的, 请先移步博主的之前的文章进行学习, 本文就是在学会线程的创建后, 再带大家认识一下 Thread 类以及其常见的方法, 再给大家讲解一下线程都有哪些状态.原创 2023-07-13 22:03:07 · 991 阅读 · 3 评论 -
【多线程初阶】第一次认识线程
本文讲解内容为多线程的基础内容, 带大家了解一下什么是线程, 线程与进程的区别是什么, 以及创建第一个Java多线程程序, 创建线程都有哪些方法. 在进行线程的学习前, 可以先简单了解一下操作系统中进程的概念, 有助于更好的理解线程.原创 2023-07-07 15:44:39 · 194 阅读 · 2 评论