- 博客(5)
- 收藏
- 关注
原创 [技术分享]-Mybatis配置多个数据源(Java)
首先,使用Mybatis配置多个数据源需要用到两个工具类:SqlSessionFactory MapperFactory/** * 根据mybatis.xml中配置的不同的environment创建对应的SqlSessionFactory */public final class SqlSessionFactory { private static final Logge
2018-01-31 17:26:38 12148 2
原创 [Thinking in java] _容器 _Map
Java中的Map包含了几种基本实现:HashMap TreeMap LinkedHashMap WeakHashMap ConcurrentHashMap IdentityHashMaphashCode() 是根类Object中的方法 因此所有Java对象都具有hashcode 散列码HashMap 就是使用对象的hashcode进行快速定位查询的,此方法较传统的get方法可以显著提高性...
2018-01-19 11:09:09 143
原创 [技术分享]-volatile关键字
volatileJava提供了volatile关键字来保证可见性。(此处的保证可见性可以理解为:一个不稳定的变量,即值可能会经常改变,每次使用它的时候都到内存中进行读取,所以一般来说,多任务环境下各任务之间共享的标志都应该加volatile修饰)当一个共享变量被volatile修饰时,它会保证修改的值会立即被更新到主存,当有其他线程需要读取时,它会去内存中读取新值。volatile
2018-01-17 14:50:16 185
原创 [技术分享]- Synchronized与ReentrantLock的区别
Java在编写多线程程序时,为了保证线程安全,需要对数据同步,经常用到两种同步方式就是Synchronized和可重入锁ReentrantLock。相似:这两种同步方式有很多相似之处,它们都是加锁方式同步,而且都是阻塞式的同步,也就是说当如果一个线程获得了对象锁,进入了同步块,其他访问该同步块的线程都必须阻塞在同步块外面等待,而进行线程阻塞和唤醒的代价是比较高的(操作系统需要在用户态与内核
2018-01-17 14:41:16 218
原创 [技术分享]-ConcurrentHashMap在jdk1.8中的改进
一、简单回顾ConcurrentHashMap在jdk1.7中的设计与Hashtable不同的是,ConcurrentHashMap使用的是分段锁技术,将ConcurrentHashMap容器的数据分段存储,每一段数据分配一个Segment,当线程占用一个Segment时,其他线程可以访问其他段的数据.(每个segment都是一个锁). 与hashtable相比,这么设计的目的是对于put, re
2018-01-17 11:56:16 3650 2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人