- 博客(5)
- 资源 (1)
- 收藏
- 关注
原创 ConcurrentHashMap源码浅析
可能有人有疑问,ConcurrentHashMap跟HashMap简单的synchronized有什么区别呢? 简单的说,ConcurrentHashMap与HashMap最大的不同在于分段加锁,两次Hash命中,第一次hash找到对应的segment,然后在segment内部进行加锁,最后再次hash才找到所在 下面看代码分析public V put(K key, V value) {
2015-11-05 15:55:52 206
原创 LinkedBlockingQueue中有趣的细节
之前写了个小爬虫的时候,自己实现过一个队列,本来希望能实现读写锁分离,试了几个思路都无法实现就将这个想法搁置了。最近又重读了一遍LinkedBlockingQueue的代码,发现它就是读写锁分离的嘛。 /** Lock held by take, poll, etc */ private final ReentrantLock takeLock = new ReentrantLock();
2015-09-22 20:27:01 245
原创 InnoDB 下,可重复读隔离级别可能出现的问题
在大多数介绍数据库隔离级别的文章中,很少有提到,其实在InnoDB 引擎下,可重复读的隔离级别是不会出现幻读的问题的,幻读的定义是,在一个事务中两次读取同一张表,可能会发现数据多或者少了的情况,但InnoDB自己解决了这个问题。 下面我们可以实践一下,开启两个mysql 命令窗口,查看一下事务隔离级别 然后两个窗口分别开启事务,在其中一个窗口中插入一条数据并提交 最后我们看到,另...
2015-09-10 17:48:10 466 1
原创 Java 线程讲解之父子线程
首先,其实标题是个伪命题,因为应该说java线程是没有父子关系的,任何一个线程内部 start 一个Thread,这两个线程是平级的关系,所谓的子线程并不会因为父进程的结束而结束。 一个java程序什么时候结束呢,当所有的非守护线程结束的时候,一个java程序也停止了。怎样将一个线程设置为守护线程呢?线程可以调用setDaemon(true)方法将自己设置为守护线程。 我们也可以通过调试
2015-07-25 17:38:27 1220
原创 Springmvc 父子容器的几个要点
在最近做的一个项目中,用到了我们自己开发的orm框架,开发了一段时间后发现AOP没起作用,经过排查发现是我对springmvc中的子容器理解不足。 具体情形是这样,同时配置了spring-servlet.xml ,applicationContext.xml,这样会同时建立父子容器。logic和dao还有aop配在applicationContext中,与controller相关的则都配在了spr
2015-06-09 22:25:40 221
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人