并发编程
guaoran
java 软件开发
展开
-
两个线程交替执行输出,一个数字1-10,一个字符a-e ,打印出来12a34b56c78d910e
两个线程交替执行输出,一个数字1-10,一个字符a-e ,打印出来12a34b56c78d910e import java.util.concurrent.locks.Condition; import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock; /** * @author : 孤傲然 * @description : 两个线程,一个数字1-10,一个字符a-e ,打印出来12a34原创 2020-08-02 21:27:32 · 725 阅读 · 0 评论 -
synchronized 锁的实现原理
synchronized 是 Java 提供的一个并发控制的关键字。我们可以使用在对象、方法、代码块上来保证程序的原子性、有序性和可见性。 synchronized 三种加锁方式 修饰实例方法,作用于当前实例加锁,进入同步代码前要获得当前实例的锁 静态方法,作用于当前类加锁,进入同步代码前要获得当前类的锁 修饰代码块,指定加锁对象,对给定对象加锁,进入同步代码库前要获得给定对象的锁。 对象头的 Mark Word(32位) 分代年龄:4 bit 是否是偏向锁:1 bit 锁标志位:2 bit 对象原创 2020-08-30 13:20:14 · 573 阅读 · 0 评论 -
CountDownLatch 原理分析
当我们需要实现并发请求,或者一个线程需要等待其他线程执行完成之后再执行时 ,我们可以使用 CountDownLatch 以前文章 两个线程交替执行输出,一个数字1-10,一个字符a-e ,打印出来12a34b56c78d910e ReentrantLock lock unLock 原理分析 Condition await signal 阻塞和唤醒 原理分析 CountDownLatch 原理分析 应用程序实例 public class CountDownLatchDemo extends Thread{原创 2020-08-30 13:00:56 · 2745 阅读 · 1 评论 -
Condition await signal 阻塞和唤醒 原理分析
当我们想合理使用 JUC (java.util.concurrent)包下的工具去做一些场景的需求时,如果了解其中的原理,对于我们写代码可能事半功倍。今天就分享下我对 ReentrantLock 和 Condition 的理解。 以前文章 两个线程交替执行输出,一个数字1-10,一个字符a-e ,打印出来12a34b56c78d910e 这里使用了 java.util.concurrent 包下的 ReentrantLock 和 Condition 。 上次分析了 ReentrantLock 的原理原创 2020-08-30 12:40:35 · 1489 阅读 · 0 评论 -
ReentrantLock lock unLock 原理分析
当我们想合理使用 JUC (java.util.concurrent)包下的工具去做一些场景的需求时,如果了解其中的原理,对于我们写代码可能事半功倍。今天就分享下我对 ReentrantLock 和 Condition 的理解。 以前文章 两个线程交替执行输出,一个数字1-10,一个字符a-e ,打印出来12a34b56c78d910e 这里使用了 java.util.concurrent 包下的 ReentrantLock 和 Condition 。 这里先分析下 ReentrantLock 的原理原创 2020-08-30 12:07:38 · 648 阅读 · 0 评论 -
volatile 可见性、有序性 的实现原理及 final 语义
JMM定义了共享内存中多线程程序读写操作的行为规范:在虚拟机中把共享变量存储到内存 以及从内存中取出共享变量的底层实现细节。通过这些规则来规范对内存的读写操作从而保证指令的正 确性,它解决了CPU多级缓存、处理器优化、指令重排序导致的内存访问问题,保证了并发场景下的可 见性。 volatile 如果一个字段被声明为 volatile ,java 线程内存模型确保所有线程看到这个变量的值都是一致的。可见性和有序性 被 volatile 修饰的变量进行写原创 2019-03-26 11:06:03 · 385 阅读 · 0 评论 -
CountDownLatch 原理分析
当我们需要实现并发请求,或者一个线程需要等待其他线程执行完成之后再执行时 ,我们可以使用 CountDownLatch 以前文章 两个线程交替执行输出,一个数字1-10,一个字符a-e ,打印出来12a34b56c78d910e ReentrantLock lock unLock 原理分析 Condition await signal 阻塞和唤醒 原理分析 CountDownLatch 原理分析 应用程序实例 public class CountDownLatchDemo extends Thread{原创 2019-06-10 10:40:26 · 234 阅读 · 0 评论