为什么Java中的synchronized关键字称为"同步"而不是更精确的"互斥"?

Edw*_*uza 10 java synchronized

我听说选择使用'synchronized'这个词来描述互斥语句只是一个错误(编辑:'错误'在这里是一个糟糕的选择.请参阅编辑)在Java中,但我想知道是否有实际上是选择背后的原因.

[编辑]

在Safyan的评论的推动下,我想补充一点,同步是建立线程之间时序关系的通用术语.它可以包括互斥和速率控制之类的事情(例如,两个线程以相同的速率执行某些操作).使用"synchronized"表示互斥而不是像'mutexed'这样的更具体的关键字,似乎不必要地含糊不清.

Mic*_*yan 7

这不是一个错误.它意味着它所说的; 代码必须与其他线程同步以提供互斥.事实上,术语"同步"可能比"互斥"更有意义,因为"互斥"意味着一种非常特殊类型的同步原语,并且synchronized关键字可以使用任意数量的线程同步原语实现(使用主动轮询进行测试和设置,信号量等).