
Java并发
只为成功
这个作者很懒,什么都没留下…
展开
-
可重入锁(又名递归锁)
可重入锁指的是同一线程外层函数获得锁之后,内层递归函数仍能获取该锁的代码,在同一线程的外层获取锁的时候,在进入内层方法会自动获取锁,也就是说线程可以任意进入它已经拥有的锁的同步代码块。synchronized 是一个典型的重入锁使用synchronized 实现代码如下:public class ReenterLockDemo { public static void main(S...原创 2020-05-04 22:42:22 · 287 阅读 · 0 评论 -
CAS实现原子操作的三大问题
在java并发包中有一些并发框架也使用了自旋CAS的方式来实现原子操作,比如LinkedTransferQueue类的Xfer方法。CAS虽然很高效地解决了原子操作,但是CAS仍然存在三大问题ABA问题,循环时间长开销大,以及只能保证一个共享变量的原子操作。ABA问题在CAS操作值的时候,如果一个变量是A,变成了B,又变成了A,那么使用CAS进行检查时是发现没有变化,但是的确是变化了。解决思路...原创 2020-04-08 23:41:21 · 657 阅读 · 0 评论 -
线程池拒绝策略
线程池拒绝策略RejectedExecutionHandler //(饱和策略):当队列和线程池都满了,说明线程池处于饱和状态,那么必须采取一种策略处理提交的新任务,这个策略默认是AbortPolicy类下的方法,表示无法处理新任务时抛出的异常。在JDK1.5中Java线程池框架提供了一下4种策略:AbortPolicy() //直接抛出异常CallerRunsPolicy()...原创 2019-10-09 10:44:16 · 187 阅读 · 0 评论