1、两个线程同时访问一个对象的同步方法:一个一个执行。(加锁成功可以起到保护作用和同步效果)
2、两个线程访问的是两个对象的同步方法:同时执行。(没有起到保护作用和同步效果)
3、两个线程访问的是synchronized的静态方法:一个一个执行。
4、同时访问同步方法与非同步方法:同时执行。
5、访问同一个对象的不同的普通同步方法:一个一个执行。
6、同时访问静态synchronized和非静态synchronized方法:同时执行。
7、方法抛出异常后,会释放锁:会。
答案:1.先后 2.同时 3.先后 4.同时 5.先后 6.同时 7.会
4、同步方法会有锁,只有一个线程进入,但是非同步方法随意进入,所以会出现并发情况
5、由于两个同步方法拿到的是同一个锁instance,所以要按照顺序执行
6、静态方法拿到的是类锁xxx.Class,非静态方法拿到的是对象锁instance,所以会出现并发的情况
7、一定是先抛出异常,再释放锁