多线程编程时的注意事项--摘抄自:Practical Java, Effective Java

多线程编程时的注意事项

 

摘抄自:Practical Java

1、  实践34:将同步化(synchronized)降至最低

2、  实践46:对instance函数,synchronized锁定的是对象,不是函数,也不是代码

3、  实践47:对static函数,synchronized锁定的是这个classClass对象

4、  实践48:用getter/setter替换public/protected的数据

5、  实践49:避免无谓的synchronized

6、  实践50:访问共享变量时,使用synchronized或者volatile

7、  实践51:在单一操作(single operation)中锁定所有用到的对象

8、  实践52:以固定而全局性的顺序取得多个lock以避免死锁

9、  实践53:优先使用notifyAll()。(而不是notify

10、              实践54:针对wait()notifyAll()使用spin lock

11、              实践55:使用wait()notifyAll()。(而不是轮询循环polling loops

12、              实践56:不要对locked object的引用重新赋值

13、              实践57:不要调用stop()suspend()

14、             实践58:通过线程间的协作来优雅的终止线程

 

摘抄自Effective Java

1、  48条:对共享可变数据的同步访问

2、  49条:避免过多的同步

3、  50条:永远不要在循环的外面调用wait()

4、  51条:不要依赖于线程调度器

5、  52条:线程安全性的文档化

6、  53条:避免使用线程组

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值