使用synchronized使方法/块一次只能在线程上访问。因此,是的,它是线程安全的。
synchronized
这两个概念是结合在一起的,而不是相互排斥的。使用时,wait()您需要在该对象上拥有监视器。所以您需要synchronized(..)在此之前。使用.wait()使当前线程停止,直到另一个线程.notify()在其等待的对象上调用。这是对的补充synchronized,它仅确保仅一个线程将进入块/方法。
wait()
synchronized(..)
.wait()
.notify()