黑马程序员技术交流社区
标题:
同步函数用的是哪一个锁呢
[打印本页]
作者:
发现的眼睛
时间:
2015-7-18 11:38
标题:
同步函数用的是哪一个锁呢
同步函数和同步代码块中,锁什么意思呀?
函数需要被对象调用。那么函数都有一个所属对象引用。就是this。
所以同步函数使用的锁是this。
通过该程序进行验证。
使用两个线程来买票。
一个线程在同步代码块中。
一个线程在同步函数中。
都在执行买票动作。
作者:
野驴少东
时间:
2015-7-18 14:01
有锁就有钥匙,对吧~!就好像毕老师说的,你有一把钥匙,我有一把钥匙,我们大家都有一把钥匙,但是火车上的厕所只有一个坑,只能让一个人进去蹲。如果你正在蹲坑,突然又进来一个哥们(或者美女),大家都很尴尬。那蹲坑就不是享受了,更是担惊受怕。
那为什么要有这个机制呢?
就是为了避免多个线程执行共享代码时的“混乱”
作者:
gaoming971366
时间:
2015-7-18 14:14
你把同步函数比作银行吧,锁就是你去银行都会领取一个小票,小票就是通行证,没有小票你取不了钱也就是进去不,所谓的this,说白了用的就是本身的.class,有时候看看源代码,你也许就会有惊喜,呵呵希望对你有帮助
作者:
wws1214
时间:
2015-7-18 14:40
通俗的讲,锁就是火车上的卫生间,一次只让一个进去。而代码运行时,一次只让一个线程进去
作者:
发现的眼睛
时间:
2015-7-18 16:25
多谢了 解释的都挺通俗易懂的
作者:
Matrix_heima
时间:
2015-7-18 16:49
一般函数用的锁是this,静态函数用的锁可以是本类的字节码对象
作者:
不怕黑人
时间:
2015-7-18 17:05
学习了。。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2