Effective Java 46-57

本文介绍了Java并发编程中的一些重要原则,包括确保方法失败时的原子性、正确处理异常、同步共享可变数据的访问、避免过度同步以减少死锁风险、正确使用wait方法、不依赖线程调度以提高程序的可移植性、明确文档记录线程安全性、避免使用线程组、谨慎实现Serializable接口等。

因为有些被使用比较少,只简单列举了一下
四十六、努力使失败保持原子性
1,一般而言,一个失败的方法调用应该使对象保持"它在被调用之前的状态",具有这种属性的方法被称为具有
失败原子性。
四十七、不要忽略异常
例如这样的代码是错误的
try{
 //.....
}catch(SomeException e){
}
四十八、对共享可变数据要同步访问
注:Java的双重检查模式并不保证一定正确
四十九、避免过多的同步
1,为了避免死锁的危险,在一个被同步的方法或者代码中,永远不要放弃对客户的控制。
2,通常同步区域内应该做尽可能少的工作
五十、永远不要在循环外部调用wait
五十一、不要依赖于线程调度器,因为这可能造成不可移植性
1,不要使用Thread.yield来修正程序,因为在不同的Jdk中,不能移植
2,线程优先级是Java平台上最不可移植的特征了。
3,对大多数程序员来说,Thread.yield的唯一用途是在测试期间人为的增加一个程序的并发行。
五十二、线程安全性的文档
一个类为了被多个线程安全的使用,必须在文档中姓储的说明它所支持的线程安全级别。
1,非可变。
2,线程安全的。
3,有条件的线程安全
4,线程兼容的
5,线程对立的。
五十三、避免使用线程组
五十四、谨慎的实现Serializable
五十五、考虑使用自定义的序列化形式
五十六、保护的编写readObject方法
五十七、必要时提供一个readResolve方法
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值