多线程
新人新世界
这个作者很懒,什么都没留下…
展开
-
J.U.C.LOCK源码之Condition源码解析
接着上一篇文章接下来就是分析Condition的源码,ConditionObject中是存储了一个单向的连表来保持await队列 public final void await() throws InterruptedException { if (Thread.interrupted()) //如果当前线程被终止则抛出异常 throw n...原创 2020-03-09 22:25:56 · 135 阅读 · 0 评论 -
J.U.C.LOCK源码之ReentrantLock解析
java中多线程的处理除了使用synchronize关键字还有就是使用J.U.C,也就是java.util.concurrent工具包,而J.U.C中的锁主要是通过Lock来控制和完成锁的基本操作,其中包括ReentrantLock(重入锁)、ReentrantReadWriteLock(读写锁:读写互斥、写写互斥、读读重入) 如图所示ReentrantLock重入锁中包含了公平锁(FairSyn...原创 2020-03-09 20:47:47 · 184 阅读 · 0 评论 -
synchronize关键字和线程可见性
synchronize关键字 synchronize 锁定的对象分别为:方法锁、静态代码块锁、静态方法锁,而锁的范围跟锁对象的生命周期息息相关。而锁对象的其实是按照生命周期来判断,分别为对象锁和类锁 类锁: 也就是class类,class类在jvm运行后便加载到了jvm的方法区中,一般情况下类锁的生命周期是跟着jvm的运行产生关系 对象锁: 也就是对象的实例,根据对象的生命周期,如果对象的实例的...原创 2020-03-08 13:53:37 · 218 阅读 · 0 评论