有什么方法可以确保调用外部方法是线程安全的?

时间:2014-01-26 14:08:02

标签: java multithreading thread-safety

以下代码:

method() { object.externalMethod(); }

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

1 个答案:

答案 0 :(得分:4)

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

除非对象的内部结构未能正确同步,否则你确实无法做任何事情。该对象应该记录与它交互的正确方法。