【问题标题】:Any way to make sure that calling an external method is thread safe?有什么方法可以确保调用外部方法是线程安全的?
【发布时间】:2014-01-26 14:08:01
【问题描述】:

对于以下代码:

method() { object.externalMethod(); }

如果 externalMethod() 不是线程安全的。比如说,它启动了多个线程,这些线程会做一些不安全的事情。在不知道 externalMethod 的实现的情况下,我们还能确保 method() 是线程安全的吗?我相信在这里添加“同步”是不够的。

【问题讨论】:

    标签: java multithreading thread-safety


    【解决方案1】:

    添加 synchronized 就足够了 - 只要您同步到对对象的所有访问,而不仅仅是对对 externalMethod 的所有访问。

    当然,除非对象的内部无法正确同步,在这种情况下,您确实无法做任何事情。该对象应该记录与之交互的正确方式。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-27
      • 2010-10-27
      相关资源
      最近更新 更多