
juc
文章平均质量分 81
腹黑大壁花
这个作者很懒,什么都没留下…
展开
-
详解JUC之锁——概述(01)
前言在详解JUC之原子类使用及实现中,我介绍了一下JUC中的原子类的使用和实现,现在我就来介绍一下JUC的重磅武器——锁(Lock)同步锁在说JUC中的锁之前,得先说一下它们的前辈——同步锁,有对比才有伤害嘛~同步锁的概念是,不同的线程可以访问一个同步锁,但是在同一个时间点,这个同步锁只能被一个线程获取,而想要却得不到它的线程就必须等待了,直到获取到它才能继续运行。Java是通过synchroniz原创 2017-05-11 10:45:35 · 1733 阅读 · 1 评论 -
详解JUC之锁——Lock与AQS(02)
前言在详解JUC之锁——概述(01)中我对JUC中的锁进行了概述,下面我就介绍一下它们的根基Lock接口和AQS类Lock看名字就知道Lock接口就是JUC中锁的顶级接口,支持语义不同的锁规则,比如说公平锁和非公平锁,独占锁(也可以叫互斥锁)和共享锁等。它最主要的两个方法就是lock()和unlock(),一看就知道是获取锁和释放锁。还有一个比较有趣的方法是boolean tryLock(long原创 2017-05-11 17:07:03 · 1738 阅读 · 0 评论 -
详解JUC之锁——ReentrantLock类(03)
前言在详解JUC之锁——Lock与AQS(02)中我介绍了JUC锁的根基——AQS类还有公平锁和非公平锁,现在就可以正式介绍一下JUC锁家族其中的一个成员——ReentrantLockReentrantLockReentrantLock是一个互斥锁,也是一个可重入锁(Reentrant就是再次进入的意思)。ReentrantLock锁在同一个时间点只能被一个线程锁持有,但是它可以被单个线程多次获取,原创 2017-05-11 17:18:59 · 1281 阅读 · 6 评论 -
详解JUC之锁——LockSupport类(04)
LockSupportLockSupport看名字叫锁支持,这个玩意的功能跟wait和notify很像,它也是可以阻塞一个线程,然后又可以恢复一个线程,不过有个比较大的区别就是,wait让线程阻塞前,必获取到同步锁。而LockSupport这个哥们比较牛逼,随时随地随便阻塞当前线程,你给它一个线程它就敢让那个线程阻塞。它是通过park()方法阻塞当前线程的,park的意思就是停车咯,然后恢复线程就是原创 2017-05-11 17:25:51 · 1947 阅读 · 0 评论 -
详解JUC之原子类概述
原子操作在讲 JUC (java.util.concurrent) 的原子类之前呢,我得先介绍一下原子操作在化学变化中,原子(Atom)是不能再分的一种粒子(在物理上还可以分为质子和电子),计算机中的原子操作是指不能分割成若干部分的操作,表示这个操作在执行过程中,是不能被中断的。比如说int i=0;是一个原子操作。而i++则可以分成两步操作,先是计算i+1的值然后第二步是将第一步的计算结果赋值给i原创 2017-05-08 18:54:28 · 1598 阅读 · 0 评论 -
Java中CAS详解
转载http://blog.csdn.net/ls5718/article/details/52563959在JDK 5之前Java语言是靠synchronized关键字保证同步的,这会导致有锁锁机制存在以下问题:(1)在多线程竞争下,加锁、释放锁会导致比较多的上下文切换和调度延时,引起性能问题。(2)一个线程持有锁会导致其它所有需要此锁的线程挂起。(3)如果一个优先级高的线程等待一个优先级低的线程转载 2017-05-08 22:39:32 · 896 阅读 · 0 评论 -
sun.misc.unsafe类的使用
转载http://blog.csdn.net/fenglibing/article/details/17138079 这个帖子是关于JAVA中鲜为人知的特性的后续更新,如果想得到下次在线讨论的更新,请通过邮件订阅,并且不要忘了在评论区留下你的意见和建议。 Java是一个安全的开发工具,它阻止开发人员犯很多低级的错误,而大部份的错误都是基于内存管理方面的。如果你想搞破坏,可以使用Unsa转载 2017-05-09 09:42:30 · 725 阅读 · 0 评论 -
详解JUC之原子类使用及实现
前言我在详解JUC之原子类概述这篇文章中介绍了一下原子操作和JUC包下的原子类的类型,现在我就来介绍第一种原子类类型——操作基本类型的原子类操作基本类型的原子类操作基本类型的原子类有3个AtomicInteger:操作int类型AtomicLong:操作long类型AtomicBoolean:操作boolean类型这些操作基本类型数据的原子类的使用是非常简单的,你对基本类型数据的操作,在这些原创 2017-05-09 12:27:41 · 2029 阅读 · 0 评论