2018年4月21日
摘要: 相比synchronized,final和volatile也是经常使用的关键字,下面聊一聊这两个关键字的使用和实现 1.使用 final使用: 修饰类表示该类为终态类,无法被继承 修饰方法表示该方法无法重写,编译器可以内联编译 修饰对象表示该对象引用一旦初始化后,无法被修改 将参数传递到匿名内部类中 阅读全文
posted @ 2018-04-21 10:39 天际线_skyline 阅读(1062) 评论(0) 推荐(0) 编辑
2018年4月14日
摘要: 上一篇文章介绍了synchronized的基本使用方法和实现,在实现部分说明了synchronized的底层实现依赖系统互斥锁mutex,但是这个一个重型锁,竞争导致线程阻塞挂起,后续拿到锁后再恢复线程,因为java使用的是1对1的线程模型,这个过程页涉及到了用户态和内核态的转换,比较消耗性能。为了 阅读全文
posted @ 2018-04-14 15:43 天际线_skyline 阅读(541) 评论(0) 推荐(0) 编辑
2018年3月20日
摘要: 对于使用java同学,synchronized是再熟悉不过了。synchronized是实现线程同步的基本手段,然而底层实现还是通过锁机制来保证,对于被synchronized修饰的区域每次只有一个线程可以访问,从而满足线程安全的目的。那么今天就让我们聊一聊synchronized的那些事 1.基本 阅读全文
posted @ 2018-03-20 21:09 天际线_skyline 阅读(16086) 评论(2) 推荐(0) 编辑
2016年7月9日
摘要: 场景:本周在完成一个公司业务功能时,在判断是否为代叫单时调用了equal方法: HELP_ORDER为枚举变量,比较的getHelpFlag()返回值为Integer,使得所有情况都返回false,导致业务逻辑错误 分析原因:equal为java的Object中的方法,因此除了基本类型外其他所有类型 阅读全文
posted @ 2016-07-09 12:36 天际线_skyline 阅读(15554) 评论(0) 推荐(0) 编辑