是否可以在检测到对象不为空以进行锁定时同步块(synchronized block)。 它是某种尽力而为的同步尝试。 我可以这样写代码,但看起来有点冗长:
if ( lock_object != null )
{
synchronized(lock_object) {
doSomething();
}
}
else
{
doSomething();
}
是否有更好的方法来构建此代码?
最佳答案
有可能,但没有意义。 doSomething
方法读取/写入一些数据,例如该方法所属对象的字段。最明显和可靠的方法是声明方法 doSomething
同步,以及所有其他可以从不同线程调用的方法。同步块(synchronized block)仅用于优化,新手程序员应避免使用它。
至于“最大努力”,编程中的最大努力意味着不亚于可靠和经过验证的功能。所有其他“努力”都不是最好的,包括您的代码。
关于java - 尽可能同步一个对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17915782/