(二)共享受限资源

本章主要讲如何解决访问共享资源时的竞争问题。

其中关于synchronized关键子,显式lock锁等详细内容看我写的这篇文章

下面主要讲原子类、临界区和线程本地存储:

原子类

J2SE 5.0提供了一组atomic class来帮助我们简化同步处理。基本工作原理是使用了同步synchronized的方法实现了对一个long, integer, 对象的增、减、赋值(更新)操作. 比如对于++运算符AtomicInteger可以将它持有的integer 能够atomic 地递增。

在需要访问两个或两个以上 atomic变量的程序代码(或者是对单一的atomic变量执行两个或两个以上的操作)通常都需要被synchronize以便两者的操作能够被当作是一个atomic的单元。

临界区

使用锁控制的代码块

synchronized(synObject){

}

在进入此段代码前,必须获取syncObject对象的锁。syncObject常常是this,表示当前对象。

线程本地存储

是一种自动化机制,可以为使用相同的变量的每个不同线程都创建不同的存储。

由java.lang.ThreadLocal类实现

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值