【问题标题】:Can I make an overridden method synchronized?我可以同步覆盖的方法吗?
【发布时间】:2014-03-21 07:52:50
【问题描述】:

我正在重写超类中的一个方法,但是我希望这个方法是同步的。 是否允许?有什么替代方案?

【问题讨论】:

    标签: java synchronized overriding


    【解决方案1】:

    是的,这是允许的,因为它不会更改合同而是更改实施。

    认为您总是可以简单地添加一个同步块:

    synchronized(this) { 
    

    就在方法的开头,这将达到大致相同的结果。该方法中还可能有其他(可能是隐藏的)锁,这使得它真正成为实现的一部分,而不是 API。

    【讨论】:

    • 你的意思是Synchronized block 对吗?好吧,我应该试试这个。谢谢。
    • @user1612078 您不需要使用同步块,因为您可以使整个方法同步。仅当您并不总是需要同步时才使用同步块(或者如果方法的很大一部分可以不受保护)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-24
    相关资源
    最近更新 更多