Java牛角尖【009】: 多线程中synchronized的锁定方式

  同一个对象中的一个synchronized方法如果已有一个线程进入,则其它的线程必须等该线程结束后才能进入该方法。那么,如果一个类中有多个synchronized方法,会有什么情况呢?

  看下面一段代码:

  运行结果如下:

  很明显,当对象t2的synchronized方法test2被线程tt调用时,主线程也无法进入其test1方法,直到线程tt对test2方法的调用结束,主线程才能进入test1方法。

  结论,对于synchronized方法,Java采用的是对象锁定的方式,当任何一个synchronized方法被访问的时候,该对象中的其它synchronized方法将全部不能被访问。

 

  下一篇: Java牛角尖【010】: 当对象a.equals(b)时,a.hashCode == b.hashCode吗?

posted @ 2009-06-11 16:30  moonsnow  阅读(172)  评论(0编辑  收藏  举报