2013-01-21 23 views
-3

我读关于内部锁和信号灯的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 - 所有这些都与术语“释放”和“获取”一起使用。内在锁是否与许可证一样? (信号量,锁,线程......)

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

在此先感谢。

编辑: 我真的专注于许可vs锁和他们是如何相关的,但是meh。我现在有了更好的理解。

+1

快速谷歌它会得出答案... https://www.google.com/search?q=difference+between+lock+and+semaphore&aq=0&oq=the+difference+betwen+locks +和+ s&aqs = chrome.1.57j0l3.19815&sourceid = chrome&ie = UTF-8 – Yaneeve

+0

我的问题是关于_permits_与锁,而不是信号量vs锁......我认为这是一个有效的问题,不应该得到downvoted这么多:/我只是学习这个,并有一个模糊的理解 – dmonopoly

回答

1

信号和锁是类似的,它们都允许你修改你的代码,以便它是线程安全的。不同之处在于,当使用信号量时,可以说“最多两个线程可以一次抓住此锁”。使用锁定,您只能允许一个线程在所有情况下都可以锁定锁定。

+0

+1内部锁也释放许可证隐式地等待()或当它超出范围。死锁检测器还可以检测两个或更多线程是否正在等待彼此释放锁。即它具有更多的语言和运行时支持。 –

相关问题