请问各位大佬既然说sleep不释放锁 可是为什么第一个进入同步锁的线程还没有出去 其他两个线程就跑进来了呢?

新手上路,请多包涵

图片描述

请问各位大佬既然说sleep不释放锁 可是为什么第一个进入同步锁的线程还没有出去 其他两个线程就跑进来了呢?

阅读 2.7k
3 个回答

因为你锁的是实例对象...
这3个对象一人一把锁 运行的时候也获取自己的那把锁 和没锁有什么区别
先搞清楚synchronized是怎么用的吧...

新手上路,请多包涵

你应该synchronized(Thread.class)

synchronized(this) 这里的this是当前的实例对象,你new 了三次,就是三把不同的锁,所以都能进来了

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题