理解 Jdk volatile应用和实现原理

Java 多线程并发编程中,常用到两个关键字:synchronizedvolatile,synchronized 是重量级锁,而 volatile 可以理解为轻量级的 synchronized ,但并不保证线程安全。

volatile 在并发环境中保证了共享变量的 可见性,即当一个线程修改一个共享变量时,另一个线程能读到这个修改的值。volatile 变量修饰符使用适当的话,相对于 synchronized 的使用和执行成本更低,因为它不会引起线程上下文的切换和调度。

阅读更多

理解 Jdk Lock 的使用

JDK 1.5 新增了 ReentrantLock 类,可以实现线程之间的同步互斥,相比 synchronized ,在扩展功能上更加强大,在使用上更加灵活。

ReentrantLock 还具有嗅探锁定、多路分支通知等功能。

阅读更多

理解 synchronized 同步锁的使用

非线程安全 是在多个线程对同一个对象中的实例变量进行并发访问,读取的数据不一致,即数据被意外修改过,出现了脏读

synchronized 是 Java 中的关键字,是一种同步锁,可以修改方法、代码块、静态方法、类,使多线程以排队方式进行同步处理。

阅读更多