随笔分类 - 并发编程
摘要:前言 在前面的文章中,我们介绍了并发工具中的4个,Samephore,CyclicBarrier,CountDownLatch,Exchanger,但是我们漏了一个,非常的好用的工具,楼主在这里必须加上。 LockSupport LockSupport 是一个非常方便实用的线程 阻塞 工具,他可以在
阅读全文
摘要:前言 在并发编程的时候,Doug Lea 大师为我们准备了很多的工具,都在 JDK 1.5 版本后的java.util.concurrent 包下,今天楼主就和大家分享一些常用的线程协作的工具。 1. Semaphore 信号量 2. CountDownLatch 倒计时器 3. CyclicBar
阅读全文
摘要:前言 楼主这个标题其实有一种作死的味道,为什么呢,这三个东西其实可以分开为三篇文章来写,但是,楼主认为这三个东西又都是高度相关的,应当在一个知识点中。在一次学习中去理解这些东西。才能更好的理解 Java 内存模型和 volatile 关键字还有 HB 原则。 楼主今天就尝试着在一篇文章中讲述这三个问
阅读全文
摘要:前言 今天我们继续学习并发。在之前我们学习了 JMM 的知识,知道了在并发编程中,为了保证线程的安全性,需要保证线程的原子性,可见性,有序性。其中,synchronized 高频出现,因为他既保证了原子性,也保证了可见性和有序性。为什么,因为 synchronized 是锁。通过锁,可以让原本并行的
阅读全文
摘要:前言 在 Java 刚诞生时,Thread 类就已经有了很多方法,但这些方法由于一些原因(有一些明显的bug或者设计不合理)有些已经废弃了,但是他们的方法名却是非常的好,真的是浪费。我们在进行并发必编程的时候一定要注意这些。 1. 过期方法1 stop 方法 2. 过期方法2 suspend 方法和
阅读全文
摘要:前言 2018 元旦快乐。 摘要: 1. notify wait 如何使用? 2. 为什么必须在同步块中? 3. 使用 notify wait 实现一个简单的生产者消费者模型 4. 底层实现原理 1. notify wait 如何使用? 今天我们要学习或者说分析的是 Object 类中的 wait
阅读全文
摘要:前言 在 Java 的并发编程中,有一个问题需要特别注意,那就是死锁,如果发生了死锁,基本就是重启,而重启将会丢失运行中的数据。所以,了解死锁的形成并排查死锁到预防死锁成了一个重要的问题。 我们了解任何一个事情的步骤是:what,how,why,why not。 1. 什么是死锁? 我们还是直接写一
阅读全文