synchronized关键字了解一下

前言

synchronized是我们在遇到多线程问题时,经常使用到的关键字。本文我们将深入了解synchronized。

synchronized 简介

synchronized是一个重量级锁。相对于Lock来说,它会显得那么笨重。不过在Javs SE 1.6对synchronized进行的各种优化后,它的性能跟Lock差不多了。

synchronized 使用方法

分类 被锁对象 示例
实例方法 类的实例对象 // 实例方法,锁住的是该类的实例对象
public synchronized void method(){ … }
静态方法 类对象 // 静态方法,锁住的是类对象
public static synchronized void method(){ … }
实例对象 类的实例对象 // 同步代码块,锁住的是该类的实例对象
synchronized)(this){ … }
类对象 类对象 // 同步代码块,锁住的是类对象
synchronized)(Demo.class){ … }
任意实例对象 实例对象 // 同步代码块,锁住的是指定的实例对象
// String作为锁的对象
String flag = “”;
synchronized)(flag){ … }

synchronized 实现原理

感谢您的支持!

本文标题:synchronized关键字了解一下

文章作者:yoga

发布时间:2017年03月16日 - 13:03

原始链接:https://yoga0521.github.io/2017/03/16/synchronized关键字了解一下/

版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。 转载请注明出处!