原子性

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了原子性相关的知识,希望对你有一定的参考价值。

1、不可以被中断

2、基本数据类型除了long和double之外,读其的读写都是原子的。如果设置long和double为volatile则也是原子的。

3、java现在有AutomicInteger等原子类。

4、我认为java多线程的原子性意味着两方面:

       1、存在互斥机制 (long的访问实际上是多余一条指令,那么多线程访问的话势必存在中间状态,所以存在互斥机制)

       2、不可被中断(我理解的是一定要运行完,才能被调度器调度到ready)(long的访问实际上是多余一条指令,因为存在互斥机制,如果执行中被调度器调度到ready状态那么势必会等待很长时间,所以应该是不可被中断)

以上是关于原子性的主要内容,如果未能解决你的问题,请参考以下文章

Redis如何保证原子性

原子性、可见性、有序性

JAVA的原子性和可见性,线程同步的理解

并发编程的原子性 != 事务ACID的原子性

原子性和原子性操作

并发研究之可见性有序性原子性