其他分享
首页 > 其他分享> > 线程的同步

线程的同步

作者:互联网

线程的同步使用关键synchronized。
synchronized可以修饰方法,也可以修饰块。

1. synchronized方法

synchronized方法控制”对象“的访问。每个对象都对应一把锁。每个synchronized方法,都必须获得调用该方法的对象的锁才能执行,否则线程将会阻塞。

2. synchronized块

synchronized(obj){}
其中,obj称之为同步监视器(即变化的对象)。

2.1 同步监视器的执行过程:

a、第一个线程访问,锁定同步监视器,执行其中代码。
b、第二个线程访问,发现同步监视器锁定,无法访问。便等待同步监视器解锁。
c、第一个线程访问完毕,解锁同步监视器。
d、第二个线程访问,发现同步监视器没有锁,然后锁定并访问执行代码。
其中在 java.util.concurrent包中已封装好同步方法,可直接使用。例如CopyOnWriteArrayList 就是封装好的线程安全的arrayList

标签:同步,synchronized,对象,访问,监视器,线程
来源: https://blog.csdn.net/GS_40826/article/details/122152270