黑马程序员技术交流社区

标题: 同步代码块和同步方法有什么本质区别? [打印本页]

作者: 247033993@qq.co    时间: 2014-5-25 22:43
标题: 同步代码块和同步方法有什么本质区别?
同步代码块和同步方法有什么本质区别?
作者: Lin0411    时间: 2014-5-25 23:15
同步方法持有的锁匙是this,即本类对象。而同步代码块可以自定义一把锁,语法为:
synchronized(对象)
{
        同步内容
}

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

作者: fenzheng    时间: 2014-5-25 23:17
同步代码块和同步方法是一样的,作用都是起同步的作用,同步代码块,只对一个大括号里面的代码有效,而同步方法对整个方法内都有效,从效率方面考虑当然是同步代码块比较高,而同步函数,就低了,因为整个方法里的代码都要同步,必然导致速度比较低,同步代码块一般更好,只是同步函数,作用范围大,效率低下.同步代码块效率高些,但是要求你将可能并发出syn{},写起来比同步函数稍微难写点.
作者: fenzheng    时间: 2014-5-25 23:19
如果,你比较注重代码效率,那么你就用同步代码块,如果你不想仔细的看,你只要在方法里面价格synchronizatied就可以了.根据你的习惯,都可以使用的
作者: fenzheng    时间: 2014-5-25 23:20
本质是一样的,没有区别.是一个东西.只是作用域的大小不一样,同步代码块的作用域小于同步函数,而同步函数的作用域大于同步代码块,因为大,所以同步的多了,就导致效率下降了




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2