> Also, what is written so far doesn't actually do much except wrap the
> ends of a Queue with wait/notify.  You still have to make some threads,
> do something useful with the thingy, and start the execution.  Not to
> mention deciding where to put the looping (parent Thread with a
> separate run() or in the run() s above) and how to control the
> termination of the process.  Once you decide where to put these things,
> ask yourself how obvious will your decision be to the future
> maintainers?

But that is one reason why one uses a pattern - so that others can more
easily understand what you are doing and why.  Any reader versed in the
producer-consumer pattern will immediately have a good sense of the hows and
whys simply by seeing the name "producer-consumer".  Contrary to this,
rolling your own solution causes the reader to start with nothing.  No?

I see patterns as a way to attack complexity not a way to increase it.

Mike