有关同步的问题

时间:2010-06-01 21:11:20

标签: java operating-system

使用同步会减慢程序的执行速度。有没有办法提高执行速度?

5 个答案:

答案 0 :(得分:7)

说同步构造减慢执行速度就像是说降落伞减慢了跳伞者的速度。没有会更快,但这不是重点。同步是有目的的。

要提高执行速度,只需正确应用同步。

例如,使用Producer / Consumer设计模式可以帮助您减少代码中所需的同步构造数量。

答案 1 :(得分:1)

“同步减慢程序速度”根本不是真的 - 它只会在非常频繁地执行同步操作时,或者当您实际上有很多线程争用它们时才会这样做。对于大多数应用来说,两者都不是。

此外,通过使用聪明的数据结构或硬件原语,可以安全地实现某些类型的并发操作而无需同步。例子:

答案 2 :(得分:0)

您是否测量过减速量(如果有的话)?

早期JVM在使用同步时遭受了惩罚。然而,这种情况多年来已经大大改善了 。我不担心同步时的性能损失。将会有更多候选人进行优化。

答案 3 :(得分:0)

  • 描述您的代码,找出真正的瓶颈所在。
  • 仔细重新分析您的关键区域。太宽泛地应用同步非常容易。
  • 有时,更改算法会导致完全不同的同步配置文件。但这并不总是有积极的效果!

答案 4 :(得分:0)

您可能希望同步代码块而不是整个方法。没有它,你会冒更多的风险!