
并发
小虾米在coding
这个作者很懒,什么都没留下…
展开
-
ReentrantLock.FairSync的unlock方法源码笔记
ReentrantLock通过unlock方法调用公平锁的unlock方法 public final boolean release(int arg) { //尝试释放锁,如果释放成功,则status置为了0,exclusiveOwnerThread置为了null if (tryRelease(arg)) { Node h = hea...原创 2020-01-30 16:05:36 · 160 阅读 · 0 评论 -
ReentrantLock.FairSync的lock方法源码笔记
ReentrantLock通过lock方法调用公平锁的lock方法final void lock() { //调用AQS的acquire方法 acquire(1);}public final void acquire(int arg) { //尝试获取锁 if (!tryAcquire(arg) && //如果获取锁失败...原创 2020-01-30 16:05:20 · 114 阅读 · 0 评论 -
synchronized:wait/notify
https://www.jianshu.com/p/f4454164c017https://blog.youkuaiyun.com/boling_cavalry/article/details/77793224synchronized代码块通过javap生成的字节码中包含 ** monitorenter ** 和 ** monitorexit **指令。执行monitorenter指令可以获取对象...转载 2020-01-30 16:03:47 · 284 阅读 · 0 评论 -
ThreadPoolExecutor
https://blog.youkuaiyun.com/djzhao/article/details/82192918ThreadPoolExecutor是线程池类。对于线程池,可以通俗的将它理解为"存放一定数量线程的一个线程集合。线程池允许若个线程同时运行,允许同时运行的线程数量就是线程池的容量;当添加的到线程池中的线程超过它的容量时,会有一部分线程阻塞等待。线程池会通过相应的调度策略和拒绝策略,对添加...原创 2020-01-30 16:03:25 · 223 阅读 · 0 评论 -
JAVA中断机制
https://blog.youkuaiyun.com/weixin_42092278/article/details/81989449https://blog.youkuaiyun.com/axman/article/details/562249中断是指在CPU正常运行期间,由于内外部事件或由程序预先安排的事件引起的CPU暂时停止正在运行的程序,转而为该内部或外部事件或预先安排的事件服务的程序中去,服务完毕后再...原创 2020-01-30 16:03:02 · 634 阅读 · 0 评论 -
synchronized--对象头
在Hotspot源码的 sharedRuntime.cpp 中有synchronized的主要逻辑加锁改变的是对象头的状态。对象在内存中由对象头、实例数据、填充字节组成。其中对象头是必不可少的,如果对象没有字段,则实例数据是空,填充字节是为了满足一个对象在内存中占用的空间是8字节的倍数,如果不满足,就进行填充,满足的话,填充字节也是空。对象头https://blog.youkuaiyun.com/...原创 2020-01-30 16:02:20 · 1230 阅读 · 0 评论