私有锁对象模式
2016-01-05 23:17
253 查看
// private lock object idiom - thwarts denial-of-service attack private final Object lock = new Object(); public void foo() { synchronized (lock) { ... } }
优点:防止其他客户端超时的持有锁对象,从而避免客户端的拒绝服务攻击;
注意:
1、lock域被声明为final的,这样可以防止不小心改变它的内容,而破坏锁对象;
2、私有锁对象模式只能用在无条件的线程安全类(实例是可变的,但是这个类有足够的内部同步,无需任何外部同步)上,有条件的线程安全类(部分方法安全)不能应用这种模式。
3、私有锁对象模式特别适用于专门为继承而设计的类,不然的话子类和父类很可能相互锁住对方。
参见《Effective Java 第二版》第70条。
相关文章推荐
- java中的GregorianCalendar类
- 如何安装SQL Server 2008数据库(带完整图解)
- MySQL 当记录不存在时insert,当记录存在时update(ON DUPLICATE KEY UPDATE, REPLACE)
- vs2010入门程序和出错问题解决方案
- jQuery UI API - 工具提示框部件(Tooltip Widget)
- 汇总遇到的一些小问题
- leetcode 198: House Robber
- CSDN博客支持数学公式了!
- android如何快速的浏览本地api。
- jQuery UI API - 工具提示框部件(Tooltip Widget)
- Effective Objective-C 2.0 第12条:理解消息转发机制
- 网络文章影响力挖掘
- Docker网络管理及容器跨主机通信(四)
- hdu 3939(勾股+容斥)
- hdu 3939(勾股+容斥)
- UVA10118(记忆化搜索 + 好题)
- 干货分享:详解线程的开始和创建
- 1030
- 2016-1-5-Thinking in Java 读书笔记(二) --一切都是对象
- yum 源升级