并发编程

11 篇文章 0 订阅

1.”使用并发时需要解决的问题又多个,而实现并发也有多种方式,并且这两者之间没有明显的映射关系(通常只有模糊的界限),因此,你必须理解所有这些问题的特例,以便有效地使用并发“   --《Thinking in java》

2.并发解决的问题大体上可以分为两个大类:时间性能和安全性(设计的可管理型)。

3.java采用了传统的方式,即是在顺序语言的基础上提供对线程的支持,也就是将并发绑定到顺序型语言上。

4.尽管jdk有10个优先级,但与多数操作系统都不能映射得很好。比如win有7个优先级且是不固定的,所以这种映射关系也是不确定的。sun的Solaris有2^31个优先级。唯一可移植的方法是在调整优先级的时候,只使用MAX_PRIORITY\NORM_PRIORITY\MIN_PRIORITY三种级别。

5.在构造器中启动线程可能会变得有问题,因为另外一个任务可能会在构造器结束之前开始运行,这意味着该任务可能访问处于不稳定状态的对象,这是优先选择Executor而不是显示的创建Thread对象的另外一个原因。有时候使用内部类来将线程代码隐藏在类中非常有用。

6.对于java中的volatile的使用,有一个评判标准看是否适合使用:只有在状态真正独立于程序内其他内容时才能使用 volatile ,这条规则能够避免将这些模式扩展到不安全的用例。



未完待续。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值