synchronized作用在static方法上两个请求同时过来但请求到了不同机器上会发生锁等待么
不会发生锁等待。synchronized关键字可以用于静态方法和实例方法,但是锁的范围是不同的。对于静态方法,锁定的是当前类的Class对象,而对于实例方法,锁定的是当前实例对象。
当synchronized关键字作用在静态方法上时,锁定的是当前类的Class对象,而每个JVM实例都有自己的类加载器,因此在不同的机器上运行的JVM实例会有不同的Class对象,也就是说锁定的是不同的对象,不会发生锁等待。
因此,即使两个请求同时过来,但是在不同的机器上运行的JVM实例会获得不同的锁,不会互相等待。
原文地址: https://www.cveoy.top/t/topic/iM3Q 著作权归作者所有。请勿转载和采集!