自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

ToBeNo6的博客

这个人太懒,什么也没写喔..

  • 博客(5)
  • 收藏
  • 关注

原创 java并发包-ReentrantLock(四):Condition

ReentrantLock的最后讲一下Condition的使用,之前在Lock接口中,我们看到他有一个newCondition要求子类实现,从而能够实现在某一个条件上等待。(相较于传统的由虚拟机支持的synchronized关键字和wait/notify的组合,它能够选择性的唤醒正确的线程)。 同样根据方法的调用顺序,先来查看ReentrantLock中newCondition的实现是如何返回一个

2017-03-20 23:39:56 447

原创 编译hotspot源码

上学期买了本《深入理解Java虚拟机》,第一章的内容就是编译一份openjdk或者Hotspot,当时觉得有时间就去自己试一下。今天花了一整个下午的时间,终于把这个玩意(Hotspot)给搞定了。自己不去编译一次,不会知道这玩意并不简单,但是也算对Linux下的编译加深了认识,毕竟平时都在Windows平台敲代码,Linux也只有部分实验课用到了。 参考书籍:《深入理解java虚拟机 》《Hots

2017-03-18 00:03:06 4304

原创 java并发包-ReentrantLock(三):如何解锁

(本文源代码来自openjdk1.8,有错误和不足欢迎讨论指正) 看了前面讲述lock工作原理的文章,我们对ReentrantLock的实现方式有了了解。ReentrantLock中由其内部对象sync中的state成员记录其锁状态,当state=0时,代表无线程占用锁,state=n,n代表同一线程对锁的重入次数。lock的逻辑无疑就是尝试将state值从零改为1(占用)或者增加1(重入),否则

2017-03-17 12:20:09 576

原创 java并发包-Reentrantlock(二):tryLock与lockInterruptibly

(本文源代码完全来自openjdk1.8,欢迎对文中内容进行讨论指正)1. lock.lockInterruptibly()上一篇文章揭示了lock.lock()方法的工作原理,它在acquireQueued方法中设置了一个死循环,当线程从阻塞解除时,首先判断线程是否该竞争锁,如果是,则去竞争锁。竞争失败或者其它唤醒方式(如线程被中断)都会导致线程重新阻塞,这意味着lock方法屏蔽了中断,无法对其相

2017-03-15 19:06:57 628

原创 java并发包-ReentrantLock(一):lock()是如何工作的

*(本文源代码来自openjdk8,有错误和不足欢迎讨论指正)*ReentrantLock是java并发包提供的最常用的显示锁,除了实现内置锁的基本功能,还允许实现一些高级功能。ReentrantLock的声明如下:public class ReentrantLock implements Lock, java.io.Serializable {//内容忽略}可以看到它实现了Lock接口与S

2017-03-15 13:03:53 543

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除