- 博客(13)
- 收藏
- 关注
转载 java AQS(AbstractQueuedSynchronizer)同步器详解
除了内置锁(synchronized)外,java AQS(AbstractQueuedSynchronizer)同步器几乎是所有同步容器,同步工具类的基础。ReentrantLock、ReentrantReadWriteLock就是通过内部类继承并实现AQS的接口来实现相关功能的。 查看AQS的源码,包含以下几个内容:Node数据结构定义,用于存放被阻塞(自旋或者挂起...
2019-03-05 21:04:00
252
转载 mybatis Interceptor拦截器代码详解
mybatis官方定义:MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。 ...
2018-12-29 17:19:00
535
转载 aspectj编程简介
现在java生态中spring大行其道,一般使用aspectj进行切面编程使用注解方式实现,比较少使用原生的aspectj编程,网上的资料也比较少。最近工作中需要封装redisson客户端提供统一的redis组件,主要就是实现耗时日志打印以及上报,压测支持等功能。为了避免组件依赖spring的情况,使用了aspectj原生库编程。工程基于jdk1.8。1.aspectj介绍 ...
2018-12-26 10:46:00
201
转载 Java并发编程阅读笔记-锁和活跃性问题
转载于:https://www.cnblogs.com/blueSkyline/p/9179978.html
2018-06-13 21:05:00
123
转载 Java并发编程阅读笔记-同步容器、工具类整理
转载于:https://www.cnblogs.com/blueSkyline/p/9098752.html
2018-05-28 10:18:00
91
转载 Java并发编程阅读笔记-Java监视器模式示例
1、前言 书中在解释Java监视器模式的时候使用了一个车辆追踪器例子,根据不同的使用场景给出了不同的实现和优化。2、监视器模式示例 实现一个调度车辆的“车辆追踪器”,每台车使用一个String对象标识,并且拥有一个相应的位置坐标(x,y)。由于运行在多线程的场景下,对外暴露的接口需要保证线程安全。 需要提供的接口包括:获取所有车辆标识和位置读取某个车辆位...
2018-05-27 17:46:00
282
转载 我们该怎么结合日志做优化
1.前言 在日常工作中,我们常常会遇到随着业务的发展,系统的性能逐渐无法满足业务需求,这个时候就需要系统进行技术改造或者性能调优。技改可能会包括系统的重构甚至重写,功能的重新划分,但是只要是找了性能的瓶颈点,也许只是一些jvm参数或者常量的调优。2.优化 为了寻找系统的性能瓶颈点,如果有一套完整图形化的监控系统固然是好事,但是很多情况都可能无法满足这个要求,更多的是通过日...
2018-05-21 21:56:00
127
转载 记一次线上coredump事故
1、事故背景 上周三凌晨,我负责的某个模块在多台机器上连续发生coredump,幸好发生在业务低峰期,而且该模块提供的功能也不是核心流程功能,所以对线上业务影响比较小。发生coredump后,运维收到报警后立马拉起了服务,服务宕机时间为3分钟左右。2、事故分析 第二天立即组织了事故分析小组,对事故发生原因进行了排查,coredump的时候JVM保存了coredump文件,...
2018-05-02 21:04:00
1911
转载 当我们在谈论JMM(Java memory model)的时候,我们在谈论些什么
前面几篇中,我们谈论了synchronized、final以及voilate的用法和底层实现,都绕不开一个话题-Java内存模型(java memory model,简称JMM)。Java内存模型是保证线程安全的基础,主要描述了程序中全序的同步动作在不同线程访问共享全局变量时所体现的原子性、可见性和有序性上的限制。1、定义 维基百科定义:TheJava memory mo...
2018-04-30 16:59:00
88
转载 java中的final和volatile详解
相比synchronized,final和volatile也是经常使用的关键字,下面聊一聊这两个关键字的使用和实现1.使用 final使用:修饰类表示该类为终态类,无法被继承修饰方法表示该方法无法重写,编译器可以内联编译修饰对象表示该对象引用一旦初始化后,无法被修改将参数传递到匿名内部类中,参数需要声明为final,其实外部类对与匿名内部类来说就是一个闭...
2018-04-21 10:39:00
129
转载 关于java的Synchronized,你可能需要知道这些(下)
上一篇文章介绍了synchronized的基本使用方法和实现,在实现部分说明了synchronized的底层实现依赖系统互斥锁mutex,但是这个一个重型锁,竞争导致线程阻塞挂起,后续拿到锁后再恢复线程,因为java使用的是1对1的线程模型,这个过程页涉及到了用户态和内核态的转换,比较消耗性能。为了解决这个问题,java1.6引入了“轻量级锁”、“偏向锁”。1.锁优化 锁的...
2018-04-14 15:43:00
110
转载 关于java的Synchronized,你可能需要知道这些(上)
对于使用java同学,synchronized是再熟悉不过了。synchronized是实现线程同步的基本手段,然而底层实现还是通过锁机制来保证,对于被synchronized修饰的区域每次只有一个线程可以访问,从而满足线程安全的目的。那么今天就让我们聊一聊synchronized的那些事1.基本用法 java内存模型(JMM)围绕原子性,可见性、有序性以及H...
2018-03-20 21:09:00
101
转载 java中equal方法总结
场景:本周在完成一个公司业务功能时,在判断是否为代叫单时调用了equal方法:PublishOrderType.HELP_ORDER.equals(valetOrderExtraInfoDO.getHelpFlag())HELP_ORDER为枚举变量,比较的getHelpFlag()返回值为Integer,使得所有情况都返回false,导致业务逻辑错误 分析原因...
2016-07-09 12:36:00
294
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人