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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 黑马朱超 中级黑马   /  2013-3-21 22:31  /  2087 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 黑马朱超 于 2013-3-23 09:39 编辑

毕老师在将多线程的同步问题的时候用到的锁,牌子太多了,
比如synchronized(this)//调用的对象
synchronized(obj)//上帝
synchronized(ArrayWithLockOrder.class)//类
synchronized(Mylock.lockb)//类的成员变量

同步的锁的选用有什么标准?

评分

参与人数 1技术分 +1 收起 理由
陈丽莉 + 1

查看全部评分

5 个回复

倒序浏览
不管什么锁,你如果对一段码代同步,那你必须确保被多个线程并访问的代码是被同一把锁锁上的
回复 使用道具 举报
谢洋 发表于 2013-3-21 22:58
不管什么锁,你如果对一段码代同步,那你必须确保被多个线程并访问的代码是被同一把锁锁上的 ...

恩,会互相影响的线程之间要使用同一把锁,所以使用锁的时候要对那些线程同时采用同步代码块。。。不能只添加其中的一部分
回复 使用道具 举报
还有人来回答一下么?我等亮点
回复 使用道具 举报
同步函数的锁是this
静态同步函数的锁是Class对象,即该方法所在类的字节码文件对象。因为静态方法中不可以定义this.

评分

参与人数 1技术分 +1 收起 理由
陈丽莉 + 1

查看全部评分

回复 使用道具 举报
谭辉 发表于 2013-3-22 18:41
同步函数的锁是this
静态同步函数的锁是Class对象,即该方法所在类的字节码文件对象。因为静态方法中不可以 ...

嗯,想起来了....

点评

记得及时处理帖子哦,继续追问,或将分类改成【已解决】,谢谢  发表于 2013-3-23 08:25
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马