- 博客(3)
- 资源 (4)
- 收藏
- 关注
原创 单例模式(从双重加锁走向延迟初始化占位类模式)
说起单例模式,大家应该都可以熟悉单例模式的三种不同情况吧:饿汉模式、懒汉模式以及DCL模式。以下首先分别对三种模式呈上相应的代码。1.几种单例模式的形式饿汉式:public class Singleton1 { private static final Singleton1 singleton1=new Singleton1();//饿汉形式,初始化时就进行初始化对象,并且声明不...
2018-05-21 22:28:15 2237 7
原创 ReentrantReadWriteLock源码解析
为保证线程安全,经常用到的有内置锁synchronized和ReentrantLock。这两种是明显的互斥锁,每次最多只能有一个线程拥有锁。使用互斥锁可以有效避免“写读冲突”、“写写冲突”、“读读冲突”,从而保证线程安全。但是,很明显,“读读冲突”是不需要避免的,因为多个线程读并不会·出现线程安全问题。如果在读操作比较多的情景下,使用互斥锁,则会显得过于保守强硬,从而抑制了性能。因...
2018-05-19 22:02:24 203
原创 Executor源码解析
任务执行有两种方案,一种是串行执行任务,第二种就是为每个任务创建一个线程;串行执行的问题在于其糟糕的响应性和吞吐量,而后者的问题在于资源管理的复杂性,为每个任务分配一个线程会出现耗内存甚至系统崩溃的问题。因此引入了线程池的概念为合理缓解两者存在的问题。而线程池通过实现Executor框架中的接口来进行工作,首先来看下图的Executor框架的接口以及类的结构图: 如上...
2018-05-10 19:04:56 814
mybatis关联查询多对多查询案例
2018-02-03
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人