If two threads are blocked, each holding part of a resource and each needing the other part of the resource to unblock, a deadlock has occurred. In this situation, none of the threads will ever wake up, since they are both blocked waiting for the rest of the resource to become available. While always fatal, a deadlock, at least when the locks involved are fat, consumes no CPU cycles.
See also Fat lock and Livelock.