1. [techspeak] A situation wherein two or more processes 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.) See deadly embrace.
2. Also used of deadlock-like interactions between humans, as when two people meet in a narrow corridor, and each tries to be polite by moving aside to let the other pass, but they end up swaying from side to side without making any progress because they always move the same way at the same time.