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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 247033993@qq.co   /  2014-5-25 22:43  /  4117 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

同步代码块和同步方法有什么本质区别?

评分

参与人数 1技术分 +1 收起 理由
李小然 + 1 赞一个!

查看全部评分

4 个回复

倒序浏览
同步方法持有的锁匙是this,即本类对象。而同步代码块可以自定义一把锁,语法为:
synchronized(对象)
{
        同步内容
}

当然这个对象也可以是this,因此从这里可以看出,他们没有什么本质区别。

评分

参与人数 1技术分 +1 收起 理由
李小然 + 1 很给力!

查看全部评分

回复 使用道具 举报
同步代码块和同步方法是一样的,作用都是起同步的作用,同步代码块,只对一个大括号里面的代码有效,而同步方法对整个方法内都有效,从效率方面考虑当然是同步代码块比较高,而同步函数,就低了,因为整个方法里的代码都要同步,必然导致速度比较低,同步代码块一般更好,只是同步函数,作用范围大,效率低下.同步代码块效率高些,但是要求你将可能并发出syn{},写起来比同步函数稍微难写点.

评分

参与人数 1技术分 +1 收起 理由
李小然 + 1 很给力!

查看全部评分

回复 使用道具 举报
如果,你比较注重代码效率,那么你就用同步代码块,如果你不想仔细的看,你只要在方法里面价格synchronizatied就可以了.根据你的习惯,都可以使用的
回复 使用道具 举报
本质是一样的,没有区别.是一个东西.只是作用域的大小不一样,同步代码块的作用域小于同步函数,而同步函数的作用域大于同步代码块,因为大,所以同步的多了,就导致效率下降了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马