绝想首页

[ReentrantReadWriteLock]装B失败了

王天舟 [其他] 2013-05-26 12:46:39 星期日 晴天 查看:98 回复:0 发消息给作者

今天用LinkedHashMap实现了一个LRUMap,为了保证线程安全,不好好用synchronized,非要装b使用ReentrantReadWriteLock实现。想都没想,一拍脑门,get一把读锁,put一把写锁,挺好的。单线程测试用例通过,一上高并发测试用例,就sb了。

追了下源码,才看到LinkedHashMap的get是有写操作的,只上读锁,头结点一争用不sb才怪。要是逼我get和put上同一把锁。那还不如用synchronizedMap包一下完事儿呢……

后来自己一想,也是,LRU读的时候怎么可能不写点儿东西呢……睡多大脑缺氧了。

结论:装B要小心,失败很惨烈。


顶一下(32 写日记 1262609 224475
分享排行

 

 

留住已经逝去的峥嵘岁月 记住曾经绽现的万种风情 在记忆即将淡漠的时候 来把这些重新回味

Copyright (C) 2008-2014 www.juexiang.com, All Rights Reserved.

京ICP备2023001011号-3   京公网安备11010802011908号

客服QQ 1017160561 违法和不良信息举报电话 13148464312 邮箱 1017160561@qq.com