A deadlock is a situation in computer science and computing where two or more processes or threads remain in a waiting state because each is waiting for a resource held by another process or thread. This results in none of the involved processes or threads being able to proceed, causing a complete halt of the affected parts of the system.
For a deadlock to occur, four conditions, known as Coffman conditions, must hold simultaneously:
A simple example of a deadlock is the classic problem involving two processes, each needing access to two resources:
Deadlocks are a significant issue in system and software development, especially in parallel and distributed processing, and require careful planning and control to avoid and manage them effectively.