Fork me on GitHub
摘要: 为了进一步的提升程序并发执行效率,Java 8 引入了一个新的读写锁:StampedLock。 阅读全文
posted @ 2024-03-04 09:34 程序员志哥 阅读(101) 评论(0) 推荐(0) 编辑
摘要: 在上篇文章中,我们讲到ReentrantLock可以保证了只有一个线程能执行加锁的代码。但是有些时候,这种保护显的有点过头,比如下面这个方法,它仅仅就是只读取数据,不修改数据,它实际上允许多个线程同时调用的。 阅读全文
posted @ 2024-02-27 09:53 程序员志哥 阅读(216) 评论(2) 推荐(2) 编辑
摘要: 在上一篇文章中,我们介绍了ReentrantLock类的一些基本用法,今天我们重点来介绍一下ReentrantLock其它的常用方法,以便对ReentrantLock类的使用有更深入的理解。 阅读全文
posted @ 2024-02-26 11:23 程序员志哥 阅读(240) 评论(0) 推荐(3) 编辑
摘要: 在之前的线程系列文章中,我们介绍到了使用synchronized关键字可以实现线程同步安全的效果,以及采用wait()、notify()和notifyAll()方法,可以实现多个线程之间的通信协调,基本可以满足并发编程的需求。 阅读全文
posted @ 2024-02-23 16:52 程序员志哥 阅读(65) 评论(0) 推荐(1) 编辑
摘要: 在 Java web 项目中,想必很多的同学对ThreadLocal这个类并不陌生,它最常用的应用场景就是用来做对象的跨层传递,避免多次传递,打破层次之间的约束。 阅读全文
posted @ 2024-02-23 13:36 程序员志哥 阅读(134) 评论(0) 推荐(0) 编辑
摘要: 在之前的线程系列文章中,我们介绍了synchronized和volatile关键字,使用它能解决线程同步的问题,但是它们无法解决线程之间协调和通信的问题。 阅读全文
posted @ 2024-02-22 18:07 程序员志哥 阅读(64) 评论(0) 推荐(0) 编辑
摘要: 在之前的文章中,我们介绍了synchronized同步锁关键字的作用以及相关的用法,它能够保证同一时刻最多只有一个线程执行修饰的代码段,以实现线程安全执行的效果。但是如果过度的使用synchronized等方式进行加锁,程序可能会出现死锁现象。 阅读全文
posted @ 2024-02-21 11:12 程序员志哥 阅读(140) 评论(0) 推荐(1) 编辑
摘要: 在上篇文章中,我们介绍到在多线程环境下,如果编程不当,可能会出现程序运行结果混乱的问题。出现这个原因主要是,JMM 中主内存和线程工作内存的数据不一致,以及多个线程执行时无序,共同导致的结果。 阅读全文
posted @ 2024-02-21 10:32 程序员志哥 阅读(126) 评论(0) 推荐(0) 编辑
摘要: 在之前的线程系列文章中,我们介绍了线程创建的几种方式以及常用的方法介绍。我们接着聊聊多线程线程安全的问题,以及解决办法。 阅读全文
posted @ 2024-02-20 11:51 程序员志哥 阅读(360) 评论(0) 推荐(2) 编辑
摘要: 在之前的文章中,我们简单的介绍了线程诞生的意义和基本概念,采用多线程的编程方式,能充分利用 CPU 资源,显著的提升程序的执行效率。其中java.lang.Thread是 Java 实现多线程编程最核心的类,学习Thread类中的方法,是学习多线程的第一步。 阅读全文
posted @ 2024-02-19 09:54 程序员志哥 阅读(481) 评论(0) 推荐(4) 编辑