为什么要在小物体上同步?

时间:2014-07-07 13:14:40

标签: java synchronization

Java性能中的同步块如何取决于正在执行同步的对象大小?

synchorized (lock) {
    //some code here
}

想象一下锁可能只是new Object(),或者它可能是不可变类的实例,但初始化了大量字段。

2 个答案:

答案 0 :(得分:5)

synchronized不受对象大小的影响,因为它是对象上的(小)信号量,性能问题与多个线程如何访问对象有关,换句话说,与应用程序的架构方式有关

答案 1 :(得分:0)

同步的性能不依赖于您正在同步的对象的大小。但是,使用“大”对象进行同步可能会损害其他区域的性能 - 首先,初始化它可能需要一些时间,其次,它会占用内存,导致更多页面错误等(假设代码不需要它)无论如何,在这种情况下,为了同步目的而持有附加对象是没有意义的。)