|
A situation wherein two or more processes/threads are unable to proceed
because each is waiting for one of the others to do something. A common
example is a program communicating to a server, which may find itself
waiting for output from the server before sending anything more to it,
while the server is similarly waiting for more input from the
controlling program before outputting anything. (It is reported that
this particular flavor of deadlock is sometimes called a `starvation
deadlock', though the term `starvation' is more properly used for
situations where a program can never run simply because it never gets
high enough priority. Another common flavor is `constipation', in which
each process is trying to send stuff to the other but all buffers are
full because nobody is reading anything.)
|