A Deadlock is where a procedure can't finish its execution since at least two procedures are waiting for each other to wrap up. This generally happens in multi-threading.