Writings by Allen Holub

This page contains writing by Allen Holub. Some items are available only to Newsletter subscribers. (Click the button to subscribe.)



This article describes deadlock in Java. (A situation where two threads are both suspended, waiting for the other to do something.) It presents the usual sequence-related deadlock scenarios, but also discusses a wait()-related scenario that you may not have considered.

Two-Phase Handshakes

This article demonstrates a technique for synchronizing two threads that need to wait for each other. For example:

OO Design

The Bank-of-Allen Project

The Bank-of-Allen Project describes the object-oriented design process from requirements gathering through to use-case analysis. It discusses formal problem statements, what comprises a use case and how to organize one, and UML activity diagrams, all in the context of a real-world example.

This document started out life as a series of articles on the IBM DeveloperWorks site. Unfortunately, IBM has removed some of the articles from its site, so I've provided the full version, here. I'm fiddling with this article constantly, so the version presented here is a bit different than the original.

Design Patterns Quick Reference, Creational Patterns

This .pdf file contains the first draft of my Design-Patterns Quick Reference. This document is a two-facing-page-per-pattern reference to the complete set of Gang-of-Four design patterns. The final version of this document will be an Appendix from a forthcoming book, tentatively titled Applying Design Patterns in Java (to be published by Apress). I will be updating this document periodically; newsletter subscribers will be notified about updates.


Read Andrew Schulman's review of Compiler Design in C.

Allen interviewed on Java Coffee Break