【问题标题】:Is an intrinsic lock the same thing as a permit? (Semaphores, locks, threading...)内在锁和许可证一样吗? (信号量、锁、线程......)
【发布时间】:2013-01-21 06:10:40
【问题描述】:

我正在阅读 http://docs.oracle.com/javase/tutorial/essential/concurrency/locksync.html 关于内在锁和信号量的文章,但后来阅读了一些关于许可的 http://docs.oracle.com/javase/1.5.0/docs/api/java/util/concurrent/Semaphore.html - 都与术语“释放”和“获取”一起使用。

我想知道这些术语是否基本相同。

提前致谢。

编辑: 我真的专注于许可与锁以及它们之间的关系,但是嗯。我现在有了更好的理解。

【问题讨论】:

  • 快速谷歌搜索会得到答案...google.com/…
  • 我的问题是关于 permits 与锁的对比,而不是信号量与锁的对比……我认为这是一个有效的问题,不值得被否决这么多: / 刚学这个,理解很模糊

标签: java multithreading locking semaphore


【解决方案1】:

信号量和锁的相似之处在于它们都允许您修改代码以使其成为线程安全的。不同的是,当使用信号量时,你可以说“一次最多两个线程可以抓住这个锁”的意思;使用锁,您只能允许一个线程在所有情况下获取锁。

【讨论】:

  • +1 内在锁也会在 wait() 或超出范围时隐式释放许可。死锁检测器还可以检测两个或多个线程何时相互等待释放锁。即它有更多的语言和运行时支持。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-07-13
  • 2011-05-09
  • 2015-03-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多