There are four necessary conditions for a deadlock to occur
  1. Mutual exclusion condition: a resource that cannot be used by more than one process at a time.
  2. Hold and wait condition: processes already holding resources may request new resources.
  3. No preemption condition: only a process holding a resource may release it.
Circular wait condition: two or more processes form a circular chain where each process waits for a resource that the next process in the chain hold