synchronized学习--慕课网

1、synchronized关键字的作用

能够保证在同一时刻只有一个线程执行该段代码,达到保证线程安全的效果。

2、synchronize的两个用法

对象锁:包括同步方法和同步代码块。

类锁:synchronize修饰的静态的方法或指定锁为class对象。

3、多线程访问同步方法的7种情况

(1)两个线程同时访问一个对象的同步方法:串行执行(一个一个的执行)。

(2)两个线程访问的是两个对象的同步方法:并行执行。

(3)两个线程访问的是synchronize修饰的静态方法:串行执行。

(4)同时访问同步方法和非同步方法:并行执行,sysynchronize只作用于修饰的方法,对其他方法无影响。

(5)访问同一个对象的不同的普通同步方法:串行执行。

(6)同时访问静态的同步方法和非静态的同步方法:并行执行。

(7)方法抛异常后,会释放锁。

7种情况的3个核心思想:

(1)一把锁只能同时被一个线程获取,没拿到锁的线程必须等待。(1,5)

(2)每个实例都对应有自己的一把锁,不同实例直接互不影响,类锁例外(2,3,4,6)

(3)方法正常执行完毕或抛出异常,都会释放锁。(7)

猜你喜欢

转载自blog.csdn.net/Linda_Lindaaaa/article/details/88878267