A deadlock refers to the situation when simultaneous processes are holding resources and preventing each other from completing their implementation.
The following conditions can avoid the deadlock from occurring:
1) Mutual exclusion: Every process is given exclusive control of the resources allotted to it.
2) Non-preemption: A process is not allowed to release its resources till task is finished.
3) Circular wait: Multiple processes wait for resources from the other processes in a circularly dependent situation
4) Wait for: A process can hold resources while waiting for additional resources.