java的锁

万物皆字节 2012-12-11 12:06:27
请大家指点指点:当一个线程进入一个类的synchornixed方法,其他的线程能不能进入这个类的其他非synchronized方法呢?
...全文
191 6 打赏 收藏 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
Jacky-止涯 2012-12-11
  • 打赏
  • 举报
回复
引用 楼主 Aqu415 的回复:
请大家指点指点:当一个线程进入一个类的synchornixed方法,其他的线程能不能进入这个类的其他非synchronized方法呢?
【锁】对应的就是【钥匙】,现在把代码块比作一个房子:没有synchronized (锁) 的代码就是房子的外墙,不需要钥匙也能看得见;而被锁住的代码就是房子的内部,需要开锁后进去才能看得见。 只要拿到钥匙就能进屋 (访问被保护的代码)。但是钥匙只有一条,所以你需要排队领钥匙,等上一个人(线程)出来把钥匙交给你了,你才能进去。 这样保证了一次只能一个人进屋(一个线程访问),避免了数据的冲突。想进去的人需要排队等钥匙,就是线程的阻塞。 ------------------------------------------------------------- 楼主的问题,就是一个人拿钥匙进屋了,另一个人能不能看得见房子的外墙? 这显然是“可以”的。
赏金--猎人 2012-12-11
  • 打赏
  • 举报
回复
洗手间是一个类, 蹲坑是一个方法,洗手也是一个方法,蹲坑的时候不可能两个人共用一个坑(除非是好jy),必须上一个解决完了,才能轮到下一个人。不过,洗手就不用了,两个人可以共用一个水龙头。多好啊! 所以除了加锁的函数,其他的都是可以共用的。
BadPattern 2012-12-11
  • 打赏
  • 举报
回复
可以,楼主结贴率为0
yongger520 2012-12-11
  • 打赏
  • 举报
回复
可以的 java基础知识
流星陨落 2012-12-11
  • 打赏
  • 举报
回复
引用 4 楼 szx_zsx 的回复:
洗手间是一个类, 蹲坑是一个方法,洗手也是一个方法,蹲坑的时候不可能两个人共用一个坑(除非是好jy),必须上一个解决完了,才能轮到下一个人。不过,洗手就不用了,两个人可以共用一个水龙头。多好啊! 所以除了加锁的函数,其他的都是可以共用的。
引用 5 楼 tai8feng 的回复:
当然能,你只锁了方法。类又没锁~!
司机 2012-12-11
  • 打赏
  • 举报
回复
当然能,你只锁了方法。类又没锁~!

62,620

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧