摘要: java常用的锁ReentrantLock主要利用AQS框架实现,ReentrantLock主要结构如图 其主要利用的是内部类Sync来实现加锁解锁操作,而Sync继承了AbstractQueuedSynchronizer累,大部分操作由AbstractQueuedSynchronizer来完成 R 阅读全文
posted @ 2019-07-30 18:25 高少振 阅读(296) 评论(0) 推荐(0) 编辑
摘要: spring事务实现主要有两种方法 1、编程式,beginTransaction()、commit()、rollback()等事务管理相关的方法 2、声明式,利用注解Transactional 或者aop配置 xml配置如下所示 @Transactional注解课直接放在class或者method上 阅读全文
posted @ 2019-07-24 22:52 高少振 阅读(3123) 评论(0) 推荐(0) 编辑
摘要: 1、现在有线程 T1、T2 和 T3。你如何确保 T2 线程在 T1 之后执行,并且 T3 线程在 T2 之后执行? 这个线程面试题通常在第一轮面试或电话面试时被问到,这道多线程问题为了测试面试者是否熟悉join方法的概念。答案也非常简单——可以用 Thread 类的join方法实现这一效果。 1 阅读全文
posted @ 2019-07-19 17:34 高少振 阅读(281) 评论(0) 推荐(0) 编辑
摘要: Synchronized与ReentrantLock区别 1、都是可重入锁 2、Synchronized 依赖于 JVM 而 ReenTrantLock 依赖于 API 3、 ReenTrantLock 比 synchronized 增加了一些高级功能 相比synchronized,ReenTran 阅读全文
posted @ 2019-07-19 16:59 高少振 阅读(147) 评论(0) 推荐(0) 编辑
摘要: ``` /* * ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. * * * * * * * * * * * * * * * * * * * * */ /* * * * * * * Written by Doug Lea with assistance fr... 阅读全文
posted @ 2019-07-19 09:44 高少振 阅读(206) 评论(0) 推荐(0) 编辑
摘要: 最近看到一多线程题目,觉得很有意义,虽然业务中尚未出现过,但保不定以后会用到。 题目:编程主线程循环20次,子线程循环10次,以此循环往复50次 两个线程交互数据 运行结果 阅读全文
posted @ 2019-07-06 23:10 高少振 阅读(147) 评论(0) 推荐(0) 编辑
摘要: java集合类型:List、Set、Map、Queue List、Set、Queue向上均继承与Collection,Collection向上继承顶级接口Iterator,Map自己为一个顶级接口 集合的实现类均不直接实现上面这些接口, 中间均有一个抽象类,如 List、Set、Queue下有一个A 阅读全文
posted @ 2019-07-04 13:59 高少振 阅读(150) 评论(0) 推荐(0) 编辑
摘要: AB-BA经常是造成多线程死锁的最大元凶,具体表现为线程I先后去拿锁A与锁B,然而当去拿锁B时发现已经被另一个线程II拿走,然而线程II拿到锁B后又需要锁A,于是两个线程互相等待在成死锁 阅读全文
posted @ 2019-07-03 16:12 高少振 阅读(1107) 评论(0) 推荐(0) 编辑
摘要: 1、观察者模式 定义对象间一对多关系依赖关系,一旦对象状态改变,会通知所有依赖它的对象 2、策略模式 使用算法的责任和算法本身分隔开,委派给不同的对象管理。策略模式通常把一系列的算法包装到一系列的策略类里面,作为一个抽象策略类的子类 3、享元模式 运用共享技术有效地支持大量细粒度的对象 4、模板模式 阅读全文
posted @ 2019-07-03 14:17 高少振 阅读(154) 评论(0) 推荐(0) 编辑
摘要: JUC常用类 流程控制 Lock (lock 、unLock) ReentrantLock (lock、unLock) Semaphore (acquire、release) CountDownLatch (countDown、await) CyclicBarrier (await) Conditi 阅读全文
posted @ 2019-07-02 17:34 高少振 阅读(164) 评论(0) 推荐(0) 编辑