- 博客(5)
- 收藏
- 关注
原创 单例模式与DCL
相信单例模式大家已经不陌生, 是比较常见的几种模式之一,在spring中默认的bean都是单例. 下面对该模式做下回顾与总结. 主要分为饿汉式和懒汉式, 饿汉式是在类加载时进行初始化, 懒汉式是延迟加载, 当第一次调用时,进行初始化. 单例模式需要注意的是: 1. 要有私有构造方法, 避免外部直接实例化. 2. 要有静态的getInstance()方法. 3. 对于懒汉式, 要在get...
2012-04-11 15:28:46
95
原创 悲观锁与乐观锁
悲观锁: 指在应用程序中显示地为数据资源加锁. 悲观锁假定当前事务操纵数据资源时, 肯定还会有其他事务同时访问该数据资源, 为了避免当前事务的操作受到干扰, 先锁定资源. 尽管悲观锁能够防止丢失更新和不可重复读这类并发问题, 但是它会影响并发性能, 因此应该谨慎使用悲观锁. 乐观锁: 乐观锁假定当前事务操纵数据资源时, 不会有其他事务同时访问该数据资源, 因此完全依靠数据库的隔离级来自动管...
2012-04-03 13:46:48
125
原创 Hibernate session缓存理解
Session 缓存概述 Session级别的缓存是Hibernate的一级缓存,主要提供事务级别的缓存处理,用来提高访问数据库的性能等. 在Session的接口实现中包含一系列的java集合,这些集合构成了Session的缓存. 只要Session实例没有结束生命周期,存放在它缓存中的对象也不会结束生命周期. 当Session 通过save()方法持久化一个对象时,这个对象被加入到Session...
2012-04-02 17:40:45
114
原创 Atomic包中AtomicInteger原子类型学习
AtomicInteger,一个提供原子操作的Integer的类。在Java语言中,++i和i++操作并不是线程安全的,在使用的时候,不可避免的会用到synchronized关键字。 来看AtomicInteger提供的接口。 //获取当前的值 public final int get() //取当前的值,并设置新的值 public final int getAndSe...
2012-03-31 21:10:13
217
原创 事物隔离级别
在分布式的系统中,通常会有多个线程连接到数据库中同时对一个表进行操作(这里的同时并不表示同一个时间点,而是同时竞争cpu的资源,至于如何调度,就要看线程和操作系统如何进行调度了),这种情况下如果会话的事物设置不当,就会导致数据混乱,常常会出现以下三种情况(假设现在系统中有两个会话A和B,同时对表T_Test操作): 1.脏读:假如A开启事物后,在查询之前,B修改了表中的某条记录,但是事物还没提交...
2012-03-30 20:23:09
90
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人