原子操作
来源:互联网 发布:毕业生找工作知乎 编辑:程序博客网 时间:2024/05/16 12:41
"原子操作(atomic operation)是不需要synchronized",这是Java多线程编程的老生常谈了。所谓原子操作是指不会被线程调度机制打断的操作;这种操作一旦开始,就一直运行到结束,中间不会有任何 context switch (切[1] 换到另一个线程)。 如果这个操作所处的层(layer)的更高层不能发现其内部实现与结构,那么这个操作是一个原子(atomic)操作,原子操作可以是一个步骤,也可以是多个操作步骤,但是其顺序不可以被打乱,也不可以被切割而只执行其中的一部分;将整个操作视作一个整体是原子性的核心特征。 原子性不可能由软件单独保证--必须需要硬件的支持,因此是和架构相关的。在x86 平台上,CPU提供了在指令执行期间对总线加锁的手段。CPU芯片上有一条引线#HLOCK pin,如果汇编语言的程序中在一条指令前面加上前缀"LOCK",经过汇编以后的机器代码就使CPU在执行这条指令的时候把#HLOCK pin的电位拉低,持续到这条指令结束时放开,从而把总线锁住,这样同一总线上别的CPU就暂时不能通过总线访问内存了,保证了这条指令在多处理器环境中的原子性。
0 0
- 原子操作
- 原子操作
- 原子操作
- 原子操作
- 原子操作
- 原子操作
- 原子操作
- 原子操作
- 原子操作
- 原子操作
- 原子操作
- 原子操作
- 原子操作
- 原子操作
- 原子操作
- 原子操作
- 原子操作
- 原子操作
- The JDBC Driver has been forcibly unregistered
- 如何鉴赏书法-2
- PAT乙级1019 数字黑洞
- JVM学习
- 利用线程池实现Android客户端的http网络数据请求工具类
- 原子操作
- java程序中调用带有输入输出值的SQL函数
- 2017/2/23 学习css的第二天
- Android6.0运行时权限机制
- MarkDownPad2.5注册码
- 一步选择或者取消所有的复选框
- 已知中序遍历、后序遍历,求先序遍历
- leetcode题解-463. Island Perimeter
- 插入排序