- 博客(5)
- 资源 (13)
- 收藏
- 关注
原创 ReadLock和WriteLock(读写锁)
ReadWriteLock也是一个接口,提供了readLock和writeLock两种锁的操作机制,一个资源可以被多个线程同时读,或者被一个线程写,但是不能同时存在读和写线程。使用场合假设在程序中定义一个共享的数据结构用作缓存,它大部分时间提供读服务(例如:查询和搜索),而写操作占有的时间很少,但是写操作完成之后的更新需要对后续的读服务可见。在没有读写锁支持的(Java 5 之前)时候,如果需要完成
2016-09-20 22:56:13 20136 3
原创 Lock接口中的几个方法讨论
显示锁Lock和ReentrantLockLock 是一个接口,提供了无条件的、可轮询的、定时的、可中断的锁获取操作,所有加锁和解锁的方法都是显示的。核心方法有lock()、unlock()、tryLock(),实现类有ReentrantLock、ReentrantReadWriteLock.ReadLock、ReentrantReadWriteLock.WriteLockvoid lock()
2016-09-19 22:31:48 988
原创 java.lang.IllegalMonitorStateException
java.lang.IllegalMonitorStateException线程唤醒或者等待其他线程调用方法(waint(),notify(),notifyAll())时出现的异常为什么会出现这样的异常呢?1、解除那些在该对象上调用wait()、notify()、notifyAll()方法的线程的阻塞状态。该方法只能在同步方法或同步块内部调用。如果当前线程不是对象所得持有者,该方法抛出一个java.
2016-09-04 21:27:44 6429 1
原创 Thread安全之synchronized同步锁
为什么会出现线程不安全?多个线程之间是不能相互传递数据通信的,他们之间的沟通只能通过共享变量来进行。Java内存模型(JMM)规定了jvm的主内存,住内存是多个线程共享的。当new一个对象的时候,也是被分配到主内存中,每个线程都有自己的工作内存,工作内存存储了主内存的某些对象副本,当线程操作某个对象时,执行顺序如下: 1、从主存复制变量到当前的工作内存 2、执行代码,改变共享变量 3、用工作内
2016-09-04 17:52:34 504
原创 数据库事务深入分析
一、数据库事务的四大特性1、原子性(Atomic) 事务必须是原子工作单元,对数据的修改要么全都执行,要么全不执行。这一性质使得系统在崩溃之后仍能得到保证,当系统发生崩溃时,检查点可根据事务操作日志判断事务在何种状态,从而做出提交or撤销操作; 若深入了解数据库事务的原子性,请阅读我的上一篇博客:浅谈mysql体系结构中的日志系统部分,可清晰了解数据库事务原子性是如何保证的。2、一致性(Cons
2016-09-01 14:24:35 1330
Spring揭秘
2017-04-30
spring-aop-jar
2016-12-14
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人