【并发编程专栏】
文章平均质量分 96
多线程,并发编程研究
¥诸葛村夫¥
年少无为,还不知进退
展开
-
并发编程四:Atomic原子类和Unsafe魔术类,ABA问题以及解决方案
文章目录1. Atomic原子类1.1 原子操作1.2 CPU原子操作的实现方式1.3 Atomic1.4 ABA问题1.5 使用Atomic修改数组1.6 使用Autmic原子类修改对象中的某个字段2. Unsafe魔法类2.1 Unsafe类的获取方法2.2 使用Unsafe魔术类修改对象中的属性值2.3 对象中的偏移量理解2.4 Unsafe魔术类的功能2.6 park和unpark的使用1. Atomic原子类1.1 原子操作原子操作:原子即“不能被进一步分割的最小粒子”,原子操作(atom原创 2022-04-05 15:13:41 · 827 阅读 · 0 评论 -
并发编程三:JUC编程中的Tools:Semaphore、CountDownLatch、CyclicBarrier、Exchanger等工具类实现以及使用场景
文章目录JUC编程中的ToolsSemaphore(信号量)什么是Semaphore构造方法重要方法基于Semaphore(信号量)机制实现非公平队列总结CountDownLatchCyclicBarrier应用场景ExchangerExecutors重要方法JUC编程中的ToolsJUC中主要包含5个工具类ExecutorsSemaphorExchangerCyclicBarrierCountDownLatchSemaphore(信号量)什么是SemaphoreSemapho原创 2022-04-04 09:55:34 · 634 阅读 · 0 评论 -
并发编程二:Synchronized和基于AQS的锁,显式锁和隐式锁,内存逃逸分析ReentrantLock实现公平锁
文章目录应用场景JAVA中常用的锁机制SynchronizedSynchronized加锁方式总结面试题下面主要有下面几个内容对象内存结构JVM开启逃逸分析JVM锁的优化-锁的粗化与消除JVM内置锁优化升级过程偏向锁---总是同一个线程多次获得锁轻量级锁---出现线程间交替执行自旋锁----让线程等待一段时间(空旋转一段时间)且这个等待时间的消耗小于切换成重量级锁的时间消耗锁消除ReentrantLock总结ReentrantLockAbstractQueuedSynchronizer同步等待队列自定义同步原创 2022-03-28 00:55:55 · 1482 阅读 · 0 评论 -
并发编程一:计算机基础、并发编程要解决问题、JMM模型、Volatile关键字
文章目录计算机基础冯诺依曼计算机理论模型什么是线程Java线程和内核线程的关系JAVA线程的生命周期JMM模型多核和多CPU理解JMM的抽象理解总结MESI缓存一致性协议JAVA内存模型内存交互操作主要操作手段并发例子Volatile关键字JMM同步八种操作执行的顺序同步规则分析Volatile无法保证原子性指令重排happen-before原则:指令重排发生在哪些阶段禁止指令重排手动添加内存屏障问题?死锁代码例子JVM小技巧查找死锁进程参考网址计算机基础JAVA中并发编程的核心位置:JMM和vola原创 2022-03-28 00:39:06 · 505 阅读 · 0 评论