I am looking for a multithreading design pattern for my C++ project.
My project is in the domain of machine automation. It contains three parts, input, processor, and output. When the material is feeded, input handler takes it in and after some steps(alignments, query if processor is ready) passed it to the processor for processing.
The processor process the material, do something, and then pass it to the output, and at the same time, requesting a new input.
Input, processor, and output are in three different thread. I am looking for a design pattern to simplify the interlock between the three parts such that the programming and maintanence could be a lot easy.