Synchronization

线程主要通过共享对字段和对象引用字段所引用的访问来进行通信。这种通信形式非常有效,但是却可能导致两种错误:线程干扰和内存一致性错误。防止这些错误所需的工具是同步。

但是,同步可能会引入thread contention,当两个或多个线程试图同时访问同一资源时,就会发生thread contention,并且*导致 Java 运行时更慢地执行一个或多个线程,甚至挂起它们的执行。 饥饿和活锁是线程争用的形式。有关更多信息,请参见Liveness部分。

本节涵盖以下主题:

首页