Deadlocks

Deadlock is the most infamous parallel programming pitfall and, for this reason, we will start with this one. To describe the situation, we will follow the metaphor of bureaucrats.

The bureaucrat has to stamp a paper. To do that, he needs the stamp and the paper. First, he goes to the drawer where the stamp is and takes it. Then, he walks to the drawer where the paper is and takes the paper. He inks the stamp, and presses on the paper. Then, he returns the stamp and the paper to their places. Everything is peachy; we are on cloud 9.

What happens if another bureaucrat takes the paper first and then the stamp second? They may soon end up as one bureaucrat with the stamp in hand waiting for the paper, and another one with the paper ...

Get Java Projects - Second Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.