共享受限资源
Posted wuchao0508
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了共享受限资源相关的知识,希望对你有一定的参考价值。
本章主要讲如何解决访问共享资源时的竞争问题。其中关于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类实现
以上是关于共享受限资源的主要内容,如果未能解决你的问题,请参考以下文章