a deadlock occurs when two distinct processes both need the same resource, but only one can access it at a time, & neither is able to yield to the other
imagine you need to shower, but you can't until you change your sheets, but you don't want to touch clean sheets while dirty
from our perspective here, clearly this is ridiculous and mildly amusing, but many people end up stuck in this sort of situation due to poorly-designed algorithms; indeed, ones which were not explicitly designed but rather evolved one logical step at a time, without foresight