java修饰符:Synchronize关键字
来源:互联网 发布:达芬奇密码 知乎 编辑:程序博客网 时间:2024/04/30 13:40
Synchronize 关键字
先提出问题,如果开启多线程同时操作同一实例变量,Thread-0线程从主内存中取出的值a 为1,然后a++; Thread-1线程也从主内存中取出的值 a 进行a+=2操作;Thread-0存入2到主内存中,Thread-1也存入,这样就覆盖了Thread-0存入的值.
原因是在JAVA的内存模型中,是每一个进程都有一个主内存,每个线程都有自己的内存,线程从主内存取得数据,计算后再存回到主内存中.
解决这个问题就可以使用synchronize关键字.
使用synchronized修饰此方法后,把下面的这几个步骤当作一个原子操作:取数据,操作数据,存数据。原子操作是不能够被打断的,所以就保证了数据的一致性,这样在同一时间有线程再执行,虽然在效率上比较有影响,但是能够保证在同一时间只有一个线程能够访问到这一块内存单元。
0 0
- java修饰符:Synchronize关键字
- java 修饰符(transient volatile Synchronize 关键字)
- java 修饰符的作用三(transient volatile Synchronize 关键字)
- 【java】Synchronize关键字
- java中的synchronize(修饰方法)
- java中的synchronize(修饰类)
- java修饰符(static关键字)
- java修饰符:transient关键字
- java修饰符:volatile关键字
- java修饰符:static关键字
- Java修饰符和关键字
- synchronize关键字
- Java多线程之深入理解synchronize关键字
- java多线程基础(synchronize关键字)
- java修饰符作用四(static关键字)
- JAVA关键字—final修饰符
- Java基础之修饰符与关键字
- java中权限修饰符及关键字
- java修饰符:public、protected、d…
- java修饰符:final
- java修饰符:transient关键字
- java修饰符:volatile关键字
- Physical Inventory
- java修饰符:Synchronize关键字
- java修饰符:static关键字
- java修饰符:abstract
- java接口 interface
- Java语言提供的clone()方法、深克…
- UML类图关系(泛化 、继承、…
- spring mvc学习之@ModelAttribute运用详解
- 数组指针和指针数组的区别
- 华为交换机super密码的使用