Synchronized对象锁和类锁趣味分析
一个类就像一个四合院,盖房子必须经过大门。
每new一个对象,就表示在四合院里再盖一间新房子,大门上面的锁,叫做构造锁。
里面每一间房子就是一个实例,每间房子里边都有一个锁叫做实例锁。
四合院里有厕所,水龙头,洗衣机等等都是公共设施,都叫做static资源
门没锁,ABC租客在做事情,各种冲进来就乱套了。
有一天房东的老太太,不想租房子了,把大门锁了。因此构造方法都锁定了。
水龙头和游泳池都是属于当前这个四合院的,假如说房东不想让这些住户使用水龙头,他就可以给水龙头上一把锁,因此,锁定水龙头(对象)和锁定房子(实例)不互斥。这就是Synchronized对象锁和类锁区别
Synchronzied关键字的作用就是:线程同步。它可以用来修改对象中的方法,将对象加锁。不管哪一个线程A每次运行到这个方法时,都要检查有没有其它正在用这个方法的线程B,如果有的话,需要等正在使用这个方法的线程B运行完,再运行此线程A,没有的话,直接运行。
参考链接:https://blog.****.net/qq_37858386/article/details/71211306
参考链接:https://blog.****.net/pengweid/article/details/85711970