дедлок это другое. Это когда, например, у тебя 2 вложенных лока, внешний блочит объект а, а внутренний б. А в другом месте обратный порядок. И тред1 захватил объект а и ждет освобождения объекта б, а тред2 захватил объект б и ждет освобождения объекта а. И так они и висят до перезагрузки
In concurrent computing, a deadlock is a state in which each member of a group is waiting for another member, including itself, to take action, such as sending a message or more commonly releasing a lock.