为什么这个类线程安全?

prv*_*rvn 0 java multithreading

在此输入图像描述

曾经有过

 public synchronized void deletePerson(Person p)
      { mySet.remove();}
Run Code Online (Sandbox Code Playgroud)

它也会保持线程安全吗?

The*_*ind 5

这个类是线程安全的,因为它(mySet)中只有一个可变字段,它是private并且对它的所有访问都是同步的.

是的,public synchronized void deletePerson(Person p) { mySet.delete();}仍然会保持这个类的线程安全.

另请注意,引用mySet不会从此类中转义.这也很重要.