数据库事务的原子性:事务内的一组操作全部成功(或者全部失败)
实现方式:日志(redo,undo)
redis命令的原子性:单命令操作的不可以再分,操作要么执行,要么不执行
实现方式:单线程
Java内存模型的原子性:在一个操作中就是cpu不可以在中途暂停然后再调度,既不被中断操作,要不执行完成,要不就不执行
实现方式:
JMM模型规定了基本数据类型都具有原子性(read,load,use,assign,store,write)
更大范围的原子性:JMM提供了lock,unlock操作来满足这种需求,虚拟机未把lock和unlock操作直接开放给用户使用,但是却提供了更高层次的字节码指令monitorente和monitorexit来隐式地使用这两个操作,这两个字节码指令反应到Java代码块中就是同步块-synchronized关键字,因此在synchronized块之间的操作也具备原子性 。