The wait/notification scheme fails because the code that is supposed to notify is synchronized
on the class object, while the code that is waiting is synchronized on an instance of that
class. Different locks, they don't communicate. That is, 'this' refers to an instance, and the
[classname].class formulation refers to the class object.