- volatile的应用
有该关键字的变量每次都会从内存中直接读,而不会从缓存中读。volatile是轻量级的synchronized,比synchronized的使用和执行成本更低,因为它不会引起线程上下文的切换和调度。
- synchronized的实现原理和应用
java中的每一个对象都可以作为锁:
方法 | 锁 |
---|---|
普通同步方法 | 锁是当前实例对象 |
静态同步方法 | 锁是当前类的Class对象 |
同步方法块 | 锁是synchronized括号里配置的对象 |
有该关键字的变量每次都会从内存中直接读,而不会从缓存中读。volatile是轻量级的synchronized,比synchronized的使用和执行成本更低,因为它不会引起线程上下文的切换和调度。
java中的每一个对象都可以作为锁:
方法 | 锁 |
---|---|
普通同步方法 | 锁是当前实例对象 |
静态同步方法 | 锁是当前类的Class对象 |
同步方法块 | 锁是synchronized括号里配置的对象 |