美文网首页
原子性和一致性

原子性和一致性

作者: yaSecrets | 来源:发表于2017-12-30 20:09 被阅读0次

原子性

原子是世界上的最小单位,具有不可分割性。比如 a=0;(a非long和double类型) 这个操作是不可分割的,那么我们说这个操作时原子操作。再比如:a++; 这个操作实际是a = a + 1;是可分割的,所以他不是一个原子操作。非原子操作都会存在线程安全问题,需要我们使用同步技术(sychronized)来让它变成一个原子操作。一个操作是原子操作,那么我们称它具有原子性。java的concurrent包下提供了一些原子类,我们可以通过阅读API来了解这些原子类的用法。比如:AtomicInteger、AtomicLong、AtomicReference等。

一致性

可见性,是指线程之间的可见性,一个线程修改的状态对另一个线程是可见的。也就是一个线程修改的结果。另一个线程马上就能看到。比如:用volatile修饰的变量,就会具有可见性。volatile修饰的变量不允许线程内部缓存和重排序,即直接修改内存。所以对其他线程是可见的。但是这里需要注意一个问题,volatile只能让被他修饰内容具有可见性,但不能保证它具有原子性。比如 volatile int a = 0;之后有一个操作 a++;这个变量a具有可见性,但是a++ 依然是一个非原子操作,也就这这个操作同样存在线程安全问题。

相关文章

  • Mysql的mvcc机制

    我们都知道事务的4个特性,原子性 一致性 隔离性和持久化事务具有4个特征,分别是原子性、一致性、隔离性和持久性,简...

  • 数据库

    事务 原子性(Atomicity) 原子性:记录之前的版本,允许回滚 一致性(Consistency) 一致性:事...

  • ACID

    事务具有4个特征,分别是原子性、一致性、隔离性和持久性,简称事务的ACID特性; 一、原子性(atomicity)...

  • 事务ACID特征

    事务具有4个特征,分别是原子性、一致性、隔离性和持久性,简称事务的ACID特性; 一、原子性(atomicity)...

  • 事务

    原子性一致性持久性隔离性

  • 事务的特性

    事务具有原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持久性(Du...

  • mysql 事务机制

    一、事务四大特性(ACID)原子性、一致性、隔离性、持久性 原子性(Atomicity):原子性是指,事务包含的所...

  • 69-MySQL-事务日志

    一、事务4大特性 1.1、原子性 事务的原子性由事务的 redo 日志和undo 日志来保证 1.2、一致性 事务...

  • mysql的事务特性和锁机制

    MySQL事务的特性分为:原子性,一致性、隔离性、持久性 原子性:一个事务要么执行,要么完全不执行一致性:事务在开...

  • mysql事物属性

    事物 一、事务四大属性 分别是原子性、一致性、隔离性、持久性。 1、原子性(Atomicity) 原子性是指事务包...

网友评论

      本文标题:原子性和一致性

      本文链接:https://www.haomeiwen.com/subject/aiengxtx.html