example of multi-thread and multi-process applications using the shared memory model. A producer/consumer problem.