|
![](/i/fill.gif) |
Darren New wrote:
> There are officially five ways to prevent deadlocks. Let's see if I can
> remember them from memory:
>
> 1) Lock things in order, as you say.
> 2) Don't hold a lock while waiting for another lock.
> I.e., immediately roll back if you can't immediately aquire a lock.
> 3) Aquire all locks you'll need before you start processing.
> E.g., "run this job where there's a video tape reader, a CD burner,
> and a DSP available."
> 4) Only lock one thing, obviously.
> 5) Hmmmm... It's taking me too long to remember. :-)
>
> But yeah, there's a formal mathematical proof that you can avoid
> deadlock in exactly five ways.
See, Darren knew.
(You see what I did there?)
Although... how is #4 different from #2?
Anyway, do you have a citable reference for this stuff? (I'm guessing
Dijkstra, Knuth, or somebody must have written about this...)
--
http://blog.orphi.me.uk/
http://www.zazzle.com/MathematicalOrchid*
Post a reply to this message
|
![](/i/fill.gif) |