A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

同步函数和同步代码块中,锁什么意思呀?
函数需要被对象调用。那么函数都有一个所属对象引用。就是this。
所以同步函数使用的锁是this。

通过该程序进行验证。

使用两个线程来买票。
一个线程在同步代码块中。
一个线程在同步函数中。
都在执行买票动作。

6 个回复

倒序浏览
      有锁就有钥匙,对吧~!就好像毕老师说的,你有一把钥匙,我有一把钥匙,我们大家都有一把钥匙,但是火车上的厕所只有一个坑,只能让一个人进去蹲。如果你正在蹲坑,突然又进来一个哥们(或者美女),大家都很尴尬。那蹲坑就不是享受了,更是担惊受怕。
       那为什么要有这个机制呢?
       就是为了避免多个线程执行共享代码时的“混乱”
回复 使用道具 举报
你把同步函数比作银行吧,锁就是你去银行都会领取一个小票,小票就是通行证,没有小票你取不了钱也就是进去不,所谓的this,说白了用的就是本身的.class,有时候看看源代码,你也许就会有惊喜,呵呵希望对你有帮助
回复 使用道具 举报
通俗的讲,锁就是火车上的卫生间,一次只让一个进去。而代码运行时,一次只让一个线程进去
回复 使用道具 举报
多谢了 解释的都挺通俗易懂的
回复 使用道具 举报
一般函数用的锁是this,静态函数用的锁可以是本类的字节码对象
回复 使用道具 举报
学习了。。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马