java - 尽可能同步一个对象

标签 java synchronized

是否可以在检测到对象不为空以进行锁定时同步块(synchronized block)。 它是某种尽力而为的同步尝试。 我可以这样写代码,但看起来有点冗长:

if ( lock_object != null )
{
    synchronized(lock_object) {
        doSomething();
    }
}
else
{
    doSomething();
}

是否有更好的方法来构建此代码?

最佳答案

有可能,但没有意义。 doSomething 方法读取/写入一些数据,例如该方法所属对象的字段。最明显和可靠的方法是声明方法 doSomething 同步,以及所有其他可以从不同线程调用的方法。同步块(synchronized block)仅用于优化,新手程序员应避免使用它。

至于“最大努力”,编程中的最大努力意味着不亚于可靠和经过验证的功能。所有其他“努力”都不是最好的,包括您的代码。

关于java - 尽可能同步一个对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17915782/

相关文章:

java - 带有投影的JAVA中的OData REST API

java - 做同步的java方法队列调用?

java - Java 8 上的同步和 ExecutorService

Java map 同步

java - 仅在访问同一对象的同一方法时才锁定线程

java - 从查询中获取较旧的时间戳

java - 如何通过 java 而不是 Firebase 控制台发送 Firebase 推送通知?

java - 带有社交认证的 Rest APi 实现

java - GAE 启动动态实例来服务请求而不是使用空闲的常驻实例

java - 解释 Java 单词“synchronized”在处理草图中的使用