Definition:
Deadlock is a situation wherever a collection of processes are blocked because every process is holding a resource and waiting for another resource acquired by another process.
Consider an example when 2 trains are coming toward one another on same track and there’s only 1 track, none of the trains can move once they’re in front of each other. Similar situation occurs in operating systems when there are 2 or a lot of processes hold some resources and wait for resources held by other.
Further Reading:
Book: Patterns of Enterprise Application Architecture by Martin Fowler . Â