Heard many times of deadlocks, but what is a dreadlock in the context of multithreaded programming?
Update: IAbstract's answer links to a whitepaper which explains the algorithm named dreadlock (not a product it seems). It covers the concept quite thoroughly. However, to briefly summarize what it's about:
A common开发者_运维知识库 way of detecting deadlocks is to keep track of which threads are locking which resources. This basically produces a thread-to-resource graph, and when a cycle appears in this graph a deadlock has occurred. This method is known as a spin-lock and is also known for being expensive, so more efficient alternatives like simple locking-timeouts is also commonly used. The Dreadlock algorithm seems to be a solution for the inneffectiveness in regular spin-lock algorithms, by minimizing the amount of data needed to keep track of locking cycles.
Dreadlock looks like a new product or toolset you can use to find or detect deadlocks (although, by the time one occurs, you will be cursing the dreaded deadlock). (link supplied by Felix Kling)
when a process is requesting for a resource and that resource is held by some other waiting process and the process is never able to change it's state, the situation is called as deadlock.
精彩评论