避免在Java中同步(this)?

避免在Java中同步(this)?,第1张

避免在Java中同步(this)?

我将分别讨论每个要点。

  1. 一些邪恶的代码可能会窃取你的锁(非常流行,但也有“偶然的”变体)

我更担心意外。这意味着该用法this是你的类的公开接口的一部分,应进行记录。有时需要其他代码使用你的锁的能力。诸如此类的事情都是如此Collections.synchronizedMap(请参阅javadoc)。

  1. 同一类中的所有同步方法都使用完全相同的锁,这会降低吞吐量

这太过简单了。仅仅摆脱synchronized(this)将无法解决问题。正确同步吞吐量需要更多考虑。

  1. 你(不必要地)暴露了太多信息

这是#1的变体。使用

synchronized(this)
是界面的一部分。如果你不希望/不需要暴露它,请不要这样做。



欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/4947988.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-11-13
下一篇2022-11-13

发表评论

登录后才能评论

评论列表(0条)

    保存