sychronized关键字(多线程)

sychronized关键字:

1. 作用:利用该关键字来创建内置锁,实现线程同步;

2. 分类:(1)sychronized同步方法;(2)sychronized同步代码块;

3. sychronized同步方法:

(1)对其他sychronized同步方法或sychronized(this)同步代码块调用呈阻塞状态;

(2)同一时间内只有一个线程可以执行sychronized同步方法中的代码;

4. sychronized(this)同步代码块:

(1)对其他sychronized同步方法或sychronized(this)同步代码块的调用呈阻塞状态;

(2)同一时间内只有一个线程可以执行sychronized同步代码块中的代码;、

5. sychronized(非this对象x)同步代码块:

(1)当多个线程同时持有“对象监视器”为同一对象时,同一时间仅有一个线程执行sychronized(非this对象x)同步代码块中的代码;

(2)优点:不与同步方法以及其他锁this同步方法抢this锁,与同步方法之间的关系是异步的;

6. 静态同步sychronized方法与sychronized(class)代码块,两者作用一样

(1)静态同步sychronized方法:是指将关键字synchronized应用到static静态方法上,这样就是对整个Class类进行持锁

7. Class锁与对象锁不是同一把锁,所以可能出现异步,Class锁可以对类的所有对象实例起作用

原文地址:https://www.cnblogs.com/changna1314/p/6826711.html