使用同步会减慢程序的执行速度。有没有办法提高执行速度?
答案 0 :(得分:7)
说同步构造减慢执行速度就像是说降落伞减慢了跳伞者的速度。没有会更快,但这不是重点。同步是有目的的。
要提高执行速度,只需正确应用同步。
例如,使用Producer / Consumer设计模式可以帮助您减少代码中所需的同步构造数量。
答案 1 :(得分:1)
“同步减慢程序速度”根本不是真的 - 它只会在非常频繁地执行同步操作时,或者当您实际上有很多线程争用它们时才会这样做。对于大多数应用来说,两者都不是。
此外,通过使用聪明的数据结构或硬件原语,可以安全地实现某些类型的并发操作而无需同步。例子:
答案 2 :(得分:0)
您是否测量过减速量(如果有的话)?
早期JVM在使用同步时遭受了惩罚。然而,这种情况多年来已经大大改善了 。我不担心同步时的性能损失。将会有更多候选人进行优化。
答案 3 :(得分:0)
答案 4 :(得分:0)
您可能希望同步代码块而不是整个方法。没有它,你会冒更多的风险!