I'm tempted to go on to ask why you don't use interruptible locks to implement Thread.join () but the reality is I don't know the internals well enough to do anything with that information. I will try ...