Java性能中的同步块如何取决于正在执行同步的对象大小?
synchorized (lock) {
//some code here
}
想象一下锁可能只是new Object()
,或者它可能是不可变类的实例,但初始化了大量字段。
答案 0 :(得分:5)
synchronized
不受对象大小的影响,因为它是对象上的(小)信号量,性能问题与多个线程如何访问对象有关,换句话说,与应用程序的架构方式有关
答案 1 :(得分:0)
同步的性能不依赖于您正在同步的对象的大小。但是,使用“大”对象进行同步可能会损害其他区域的性能 - 首先,初始化它可能需要一些时间,其次,它会占用内存,导致更多页面错误等(假设代码不需要它)无论如何,在这种情况下,为了同步目的而持有附加对象是没有意义的。)