程序猿洞晓
死磕Java并发:J.U.C之重入锁ReentrantLock 死磕Java并发:J.U.C之重入锁ReentrantLock
ReentrantLock还提供了公平锁也非公平锁的选择,构造方法接受一个可选的公平参数(默认非公平锁),当设置为true时,表示公平锁,否则为非公平锁。公平锁与非公平锁的区别在于公平锁的锁获取是有顺序的。但是公平锁的效率往往没有非公平锁的效率高,在许多线程访问的情况下,公平锁表现出较低的吞吐量……
2018-06-11
AQS实现方式和独占锁、共享锁的原理分析 AQS实现方式和独占锁、共享锁的原理分析
AQS是AbstractQueuedSynchronizer类的简写,这个是锁的一个设计模式,在Java中很多锁都会用到AQS,如常用的显示锁ReentrantLock、ReentrantReadWriteLock等内部的锁都是继承AQS。AQS的基本的设计模式是模板方法模式,具体锁的获取和释放实现逻辑由类自身来实现,这些方法的组合……
2018-06-10
一起谈谈设计模式(零):静态代理、动态代理,以及动态代理的调用说明 一起谈谈设计模式(零):静态代理、动态代理,以及动态代理的调用说明
代理模式分为静态代理和动态代理两种方式,静态代理是在开发的时候就写好代理的过程,并且代理类要和目标类实现同一个接口。而动态代理是代理类通过实现InvocationHandler接口完成,在运行期间动态的构建代理对象,在动态代理的实现过程中还有另一个更为重要的类Proxy,准确的来说,Proxy负责生成代理对象,而InvocationHandler是根据生成的代理对象……
2018-06-08
原子操作CAS和相关原子操作类的实现原理 原子操作CAS和相关原子操作类的实现原理
众所周知锁有两种:乐观锁与悲观锁。独占锁是一种悲观锁,而synchronized就是一种独占锁,synchronized 会导致其它所有未持有锁的线程阻塞,而等待持有锁的线程释放锁。所谓乐观锁就是,每次不加锁而是假设没有冲突而去完成某项操作,如果因为冲突失败就重试,直到成功为止。而乐观锁用到的机制就是CAS。
2018-06-06
java基础位运算基本原理分析 java基础位运算基本原理分析
位运算是编程语言的基础,在看源码的时候会看到很多位运算代码,但是在项目代码中很少会看到位运算。因为应用代码中,有很多判断和计算都可以直接用数值的判断和计算完成,没有必要去用位运算,以至于这些基础的东西慢慢用的越来越少,慢慢也就忘了。导致的一个结果就是看代码很费力,因为大量的位运算逻辑,看不懂。作为程序员感觉数据位运算是非常必要……
2018-06-01
项目发布成功、失败,Java项目来实现邮件通知相关人员,实时反馈提醒信息 项目发布成功、失败,Java项目来实现邮件通知相关人员,实时反馈提醒信息
在开发的流程中必须涉及的项目的部署发布,这个过程也肯定会有成功、失败,作为开发能够实时的得到反馈是很有必要的,在不同的公司里采用的提醒方式不同。在说明下面的方案前,需要首先说明一下基本应用的场景。纯后台应用,现在项目基本都是前后端分离,因为一个前端服务可能会对应多个后端服务的支持,随着整个开发大环境的完善和技术的成熟,之前那种前后端耦合……
2018-05-30
项目上线,旧数据需要修改,写SQL太麻烦,看Excel配合简单SQL的强大功能 项目上线,旧数据需要修改,写SQL太麻烦,看Excel配合简单SQL的强大功能
A项目前期上线后有两张表,第一张表里面有订单的基本信息(重点:没有订单完成时间),第二张表记录订单的流程节点信息,如买车这个订单,走的流程节点有交定金、交首付、贷款申请、贷款审批……取车,每个节点都有开始时间和完成时间记录,当所有节点都完成后,会自动将订单的状态更新为完成状态。后期迭代需求生成报表,需要统计订单整个执行流程的时间 ……
2018-05-27
15 / 15