线程主要通过对引用字段所引用的字段和对象进行共享访问而通信。这种通信形式非常高效,但可能导致两种错误:线程干扰(thread interference)和内存一致性错误(memory consistency errors)。防止这些错误所需的工具是同步(synchronization)。
但是,同步会引入线程争用(thread contention),当两个或多个线程试图同时访问同一资源并使Java运行时更慢地执行一个或多个线程,甚至挂起它们的执行时,就会发生线程争用。 饥饿和活锁是线程争用的形式。 有关更多信息,请参见活跃度部分。
本节涵盖以下主题: