【发布时间】:2011-02-26 13:23:25
【问题描述】:
使用同步会减慢程序的执行速度。有没有办法提高执行速度?
【问题讨论】:
-
你为什么特别提到原语?这是否意味着同步对象不会出现减速?一些代码示例作为证据也可能有很大帮助。
-
对不起。它既可以是基元也可以是对象。
标签: java operating-system
使用同步会减慢程序的执行速度。有没有办法提高执行速度?
【问题讨论】:
标签: java operating-system
“同步会减慢程序”的说法根本不正确——它仅在同步操作非常频繁地完成时,或者当您实际上有很多线程在争夺它们时才会这样做。对于大多数应用程序来说,两者都不是真的。
此外,通过使用巧妙的数据结构或硬件原语,某些类型的并发操作可以在不同步的情况下安全地实现。例子:
【讨论】:
您可能希望同步代码块而不是整个方法。没有它,您将面临更大的风险!
【讨论】:
说同步结构会减慢执行速度就像说降落伞会减慢跳伞运动员的速度。不使用会更快,但这不是重点。同步是有目的的。
要提高执行速度,只需正确应用同步即可。
例如,使用生产者/消费者设计模式可以帮助您减少代码中所需的同步构造的数量。
【讨论】:
【讨论】:
您是否测量过减速的幅度(如果有)?
早期的 JVM 在使用同步时会受到惩罚。然而,多年来,这种情况已经大大得到改善。同步时我不会担心性能损失。将会有更多的优化候选者。
【讨论】: