Java 为什么要在小对象上同步?

Java 为什么要在小对象上同步?,java,synchronization,Java,Synchronization,Java性能中的同步块如何取决于执行同步的对象大小 synchorized (lock) { //some code here } 想象一下,锁可以是以前的new Object(),也可以是不可变类的实例,但初始化了大量字段。同步的不受对象大小的影响,因为它是对象上的一个(小)信号量,性能问题与多个线程访问对象的方式有关,换句话说,与应用程序的架构有关。synchronized不受对象大小的影响,因为它是对象上的一个(小)信号量,性能问题与多个线程访问对象的方式有关,换句话说,取决于应

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

synchorized (lock) {
    //some code here
}

想象一下,锁可以是以前的
new Object()
,也可以是不可变类的实例,但初始化了大量字段。

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

synchronized
不受对象大小的影响,因为它是对象上的一个(小)信号量,性能问题与多个线程访问对象的方式有关,换句话说,取决于应用程序的体系结构。

同步的性能不取决于正在同步的对象的大小。但是,使用“大”对象进行同步可能会影响其他方面的性能—首先,初始化它可能需要时间,其次,它会占用内存,导致更多的页面错误等。(假设您的代码不需要它,在这种情况下,仅出于同步目的而持有一个额外的对象是没有意义的)。

同步的性能不取决于您正在同步的对象的大小。但是,使用“大”用于同步的对象可能会影响其他方面的性能-首先,初始化它可能需要时间,其次,它会占用内存,导致更多的页面错误等(假设您的代码不需要它,在这种情况下,仅出于同步目的而保留另一个对象是没有意义的).

同步化不受对象大小的影响。
+1
同步化不受对象大小的影响。
+1