随笔 - 2228  文章 - 4  评论 - 370  阅读 - 1107万

随笔分类 -  juc

1 2 3 下一页
可重入锁 公平锁 读写锁、CLH队列、CLH队列锁、自旋锁、排队自旋锁、MCS锁、CLH锁
摘要:1.可重入锁 如果锁具备可重入性,则称作为可重入锁。 (转)可重入和不可重入 2011-10-04 21:38 这种情况出现在多任务系统当中,在任务执行期间捕捉到信号并对其进行处理时,进程正在执行的指令序列就被信号处理程序临时中断。如果从信号处理程序返回,则继续执行进程断点处的正常指令序列,从重新恢 阅读全文
posted @ 2017-01-03 10:44 duanxz 阅读(3379) 评论(0) 推荐(0) 编辑
Java多线程系列--“JUC锁”11之 Semaphore信号量的原理
摘要:一、Semaphore简介 Semaphore是一个计数信号量,它的本质是一个"共享锁",是基于AQS实现的,通过state变量来实现共享。通过调用acquire方法,对state值减去一,当调用release的时候,对state值加一。当state变量小于0的时候,在AQS队列中阻塞等待。 信号量 阅读全文
posted @ 2016-11-14 22:15 duanxz 阅读(1065) 评论(0) 推荐(0) 编辑
Java多线程系列--“JUC锁”10之 CyclicBarrier原理和示例
摘要:CyclicBarrier简介 CyclicBarrier是一个同步辅助类,CyclicBarrier,就是一个计数器栅栏,也就是一个计数器开关。允许一组线程互相等待,直到到达某个公共屏障点 (common barrier point)。因为该 barrier 在释放等待线程后可以重用,所以称它为循 阅读全文
posted @ 2016-11-14 22:14 duanxz 阅读(570) 评论(0) 推荐(0) 编辑
Java多线程系列--“JUC锁”09之 CountDownLatch原理和示例
摘要:概要 前面对"独占锁"和"共享锁"有了个大致的了解;和ReadWriteLock.ReadLock一样,CountDownLatch的本质也是一个"共享锁"。 CountDownLatch简介 CountDownLatch是一个同步辅助类,在完成一组正在其他线程中执行的操作之前,它允许一个或多个线程 阅读全文
posted @ 2016-11-14 22:13 duanxz 阅读(554) 评论(0) 推荐(1) 编辑
Java多线程系列--“JUC锁”08之 共享锁和ReentrantReadWriteLock
摘要:ReadWriteLock 和 ReentrantReadWriteLock介绍 ReadWriteLock,顾名思义,是读写锁。它维护了一对相关的锁 — — “读取锁”和“写入锁”,一个用于读取操作,另一个用于写入操作。“读取锁”用于只读操作,它是“共享锁”,能同时被多个线程获取。“写入锁”用于写 阅读全文
posted @ 2016-11-14 22:13 duanxz 阅读(577) 评论(0) 推荐(0) 编辑
Java多线程系列--AQS之 LockSupport
摘要:concurrent包是基于AQS (AbstractQueuedSynchronizer)框架的,AQS(JAVA CAS原理、unsafe、AQS)框架借助于两个类: Unsafe(提供CAS操作) 《AQS之:Unsafe(java可直接操作内存(),挂起与恢复,CAS操作)》 LockSup 阅读全文
posted @ 2016-11-14 22:12 duanxz 阅读(1390) 评论(0) 推荐(0) 编辑
Java多线程系列--“JUC锁”05之 非公平锁
摘要:概要 前面两章分析了"公平锁的获取和释放机制",这一章开始对“非公平锁”的获取锁/释放锁的过程进行分析。内容包括:参考代码获取非公平锁(基于JDK1.7.0_40)释放非公平锁(基于JDK1.7.0_40)关于锁的数据结构请参考"Java多线程系列--“JUC锁”03之 公平锁(一) ",锁的使用示 阅读全文
posted @ 2016-11-14 22:11 duanxz 阅读(466) 评论(0) 推荐(0) 编辑
Java多线程系列--“JUC锁”06之 Condition条件
摘要:Condition介绍 Condition的作用是对锁进行更精确的控制。Condition中的await()方法相当于Object的wait()方法,Condition中的signal()方法相当于Object的notify()方法,Condition中的signalAll()相当于Object的n 阅读全文
posted @ 2016-11-14 22:11 duanxz 阅读(464) 评论(0) 推荐(1) 编辑
Java多线程系列--“JUC锁”04之 公平锁(二)
摘要:概要 前面一章,我们学习了“公平锁”获取锁的详细流程;这里,我们再来看看“公平锁”释放锁的过程。内容包括:参考代码释放公平锁(基于JDK1.7.0_40) “公平锁”的获取过程请参考“Java多线程系列--“JUC锁”03之 公平锁(一)”,锁的使用示例请参考“Java多线程系列--“JUC锁”02 阅读全文
posted @ 2016-11-14 22:09 duanxz 阅读(496) 评论(0) 推荐(0) 编辑
Java多线程系列--“JUC锁”03之 公平锁(一)
摘要:概要 本章对“公平锁”的获取锁机制进行介绍(本文的公平锁指的是互斥锁的公平锁),内容包括:基本概念ReentrantLock数据结构参考代码获取公平锁(基于JDK1.7.0_40) 一. tryAcquire() 二. addWaiter() 三. acquireQueued() 四. selfIn 阅读全文
posted @ 2016-11-14 22:08 duanxz 阅读(547) 评论(0) 推荐(0) 编辑
Java多线程系列--“JUC锁”02之 互斥锁ReentrantLock
摘要:ReentrantLock介绍 ReentrantLock是一个可重入的互斥锁,又被称为“独占锁”。 顾名思义,ReentrantLock锁在同一个时间点只能被一个线程锁持有;而可重入的意思是,ReentrantLock锁,可以被单个线程多次获取。ReentrantLock分为“公平锁”和“非公平锁 阅读全文
posted @ 2016-11-14 22:07 duanxz 阅读(669) 评论(0) 推荐(2) 编辑
Java多线程系列--“JUC锁”01之 框架
摘要:本章,我们介绍锁的架构;后面的章节将会对它们逐个进行分析介绍。目录如下:01. Java多线程系列--“JUC锁”01之 框架02. Java多线程系列--“JUC锁”02之 互斥锁ReentrantLock03. Java多线程系列--“JUC锁”03之 公平锁(一)04. Java多线程系列-- 阅读全文
posted @ 2016-11-11 17:35 duanxz 阅读(705) 评论(0) 推荐(1) 编辑
JDK实现的线程池之一:ThreadPoolExecutor、三种阻塞队列、四种拒绝策略、五种线程池、七个参数、线程池状态
摘要:一、concurrent包中的五种线程池的简单介绍 二、ThreadPoolExecutor类七个参数 三、三种阻塞队列四、四种拒绝策略 五、线程池executor执行逻辑 一、concurrent包中的五种线程池的简单介绍 线程池按照线程数量可以分为:一是固定线程数量的线程池;二是可变数量的线程池 阅读全文
posted @ 2015-12-16 11:51 duanxz 阅读(1555) 评论(0) 推荐(1) 编辑
AOP+Semaphore实现单节点的接口(方法)限流
摘要:AOP+Semaphore 对项目限流 Semaphore限流是从线程的个数限流。 RateLimiter是从速率限流,目前的算法有漏桶算法和令牌算法。 0、依赖 1、自定义注解 @Target({ ElementType.METHOD, ElementType.TYPE }) @Retention 阅读全文
posted @ 2015-05-09 09:09 duanxz 阅读(524) 评论(0) 推荐(0) 编辑
Java 信号量 Semaphore 入门介绍
摘要:一、简介二、概念 2.1、Semaphore信号量模型 2.2、Semaphore分为单值和多值两种,前者只能被一个线程获得,后者可以被若干个线程获得 2.3、公平/非公平模式 2.4、主要的方法三、Semaphore应用场景 示例-1:Semaphore可以做到一个deadlock recover 阅读全文
posted @ 2015-05-09 08:30 duanxz 阅读(1964) 评论(0) 推荐(0) 编辑
juc-atomic原子类之七:LongAdder
摘要:LongAdder基本原理和思想 我们都知道AtomicLong是通过无限循环不停的采取CAS的方法去设置value,直到成功为止。那么当并发数比较多或出现更新热点时,就会导致CAS的失败机率变高,重试次数更多,越多的线程重试,CAS失败的机率越高,形成恶性循环,从而降低了效率。而LongAdder 阅读全文
posted @ 2014-05-14 21:26 duanxz 阅读(663) 评论(0) 推荐(0) 编辑
锁分类(独占锁、分拆锁、分离锁、分布式锁)
摘要:一、java内存模型 提到同步、锁,就必须提到Java的内存模型,为了提高程序的执行效率,java也吸收了传统应用程序的多级缓存体系。 在共享内存的多处理器体系架构中,每个处理器都拥有自己的缓存,并且定期地与主内存进行协调。在不同的处理器架构中提供了不同级别的缓存一致性(Cache Coherenc 阅读全文
posted @ 2014-03-03 15:59 duanxz 阅读(5614) 评论(0) 推荐(1) 编辑
Lock的实现原理
摘要:1. Lock 的简介及使用 Lock是java 1.5中引入的线程同步工具,它主要用于多线程下共享资源的控制。本质上Lock仅仅是一个接口(位于源码包中的java\util\concurrent\locks中),它包含以下方法 Lock有三个实现类,一个是ReentrantLock,另两个是Ree 阅读全文
posted @ 2014-02-21 15:23 duanxz 阅读(13266) 评论(0) 推荐(0) 编辑
Condition-线程通信更高效的方式
摘要:Lock可以更好的解决线程同步问题,使之更面向对象,并且ReadWriteLock在处理同步时更强大,那么同样,线程间仅仅互斥是不够的,还需要通信,本篇的内容是基于上篇之上,使用Lock如何处理线程通信。 那么引入本篇的主角,Condition,Condition 将 Object 监视器方法(wa 阅读全文
posted @ 2014-01-06 11:06 duanxz 阅读(1345) 评论(0) 推荐(0) 编辑
juc原子类之五:AtomicLongFieldUpdater原子类
摘要:概要 AtomicIntegerFieldUpdater, AtomicLongFieldUpdater和AtomicReferenceFieldUpdater这3个修改类的成员的原子类型的原理和用法相似。本章以对基本类型的原子类进行介绍。内容包括:AtomicLongFieldUpdater介绍和 阅读全文
posted @ 2013-12-13 10:18 duanxz 阅读(464) 评论(0) 推荐(0) 编辑

1 2 3 下一页
< 2025年2月 >
26 27 28 29 30 31 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 1
2 3 4 5 6 7 8

点击右上角即可分享
微信分享提示