我想从 synchronized
block 中访问方法。这是一个例子:
public void doSomething() {
// simple stuff
// a block to reduce the synchronized code to
// what really needs to be synchronized.
synchronized(this) {
if (precondition) {
doSequentialStuff();
}
}
}
private void doSequentialStuff() {
// do stuff needs to be performed sequentially.
}
为了编写干净的代码,我想知道使方法 doSequentialStuff
显式synchronized
是否会更好。恕我直言,这在语义上没有什么区别,因为在这两种情况下锁都是 this
并且保证只能从 synchronized
block 访问该方法。我希望增加可读性。
有什么建议吗?
编辑: 我修改了示例以合并注释。
最佳答案
如果没有合法的代码路径可以在不持有锁的情况下执行doHeavyStuff
,那么无论如何使其同步
为了预防粗心的开发人员将来引入的任何错误。代码的可读性只能通过什么方式来提高。
关于java - 同步访问的方法是否应该同步?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14121059/