I done this type project already.In my previous project i used 10 threads, 5 controllers,to maintain those threads,each controller having 2 threads ,one is reading data from Ethernet port,another thread is to process received data from first thread,after that send processed to data GUI using signals and slots. In this ways 5 controllers are doing same thing in parallel.