synchronized 修饰static方法

五迷三道 提交于 2020-02-21 05:42:33

 

•1.依靠对象锁锁定

初始化一个对象时,自动有一个 对象锁。

synchronized {普通方法}依靠对象锁工作,多线程访问synchronized方法,一旦某个进程抢得锁之后,其他的进程只有排队对待。

 

synchronized void method{}功能上,等效于:

void method{

   synchronized(this) {

    ...

   }

}

 

 

•2.针对每个类,也有一个锁(作为类的Class对象的一部分),

所以synchronized static方法可以在类范围内防止对static数据的并发访问。

 

synchronized {static方法} 此代码块等效于:

void method{

   synchronized(Obj.class)

   }

}

使用该类的类对象的锁定去做线程的共享互斥

 

 

 

 

java编程思想 p677(p713)

http://www.cnblogs.com/yanghuahui/p/3365922.html#undefined

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!