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