【问题标题】:(Terminology) "Contended" vs "Contented" Locks(术语)“竞争”与“满足”锁
【发布时间】:2015-12-22 03:20:31
【问题描述】:
在谈论“满足”锁和“争用”锁时,有什么区别(如果有的话)。
我最近在关于锁定的讨论中第一次听到“满足”这个词,显然这两个术语的使用频率几乎相同:
contented 367,000 个结果
contended 353,000 个结果
“竞争”和“竞争”对我来说是有意义的,因为它们是冲突的意思,但“满足”意味着满意/平静,所以让我感到困惑。
【问题讨论】:
标签:
multithreading
concurrency
locking
【解决方案1】:
“竞争”描述不同线程试图同时获取的锁,“严重竞争”表示多个线程都试图获取相同的锁,“非竞争”描述线程没有的情况任何获取锁的竞争。
“满意”可能是错字、错误的自动更正,或者可能是 eggcorn)。
这里是来自 Oracle 网站的 an example,位于 Oracle 高级研究科学家 David Dice 的博客上,他专门研究并发应用程序。如果“满足”具有特定于锁或多线程的含义,我希望他会知道。满足的错字出现在他的博客中(在文章正文中已更正,但仍保留在文章网址中),有人评论说看到“满足”。大卫骰子回复:
感谢您发现我刚刚修正的令人尴尬的错字!像你一样,我想知道“@contented”的语义到底是什么意思(:>)。问候,-戴夫
对于其中一些结果,Google 似乎预料到我们无法拼写。 Google 在“contented site:oracle.com”匹配的第一页上返回this link,即使其中没有出现“contented”一词。
【解决方案2】:
锁要么是竞争的,要么是非竞争的。锁被认为是争用的
如果线程在尝试获取锁时阻塞。如果锁可用时
一个线程试图获取它,锁被认为是非竞争的。 CON-
倾向于锁可能会遇到高争用(相对较大的数量
尝试获取锁的线程数)或低争用(相对
少量线程试图获取锁。)不出所料,
高度竞争的锁往往会降低并发的整体性能
应用程序。