Hi,
I seek your suggestions for my multi-threaded application design. The key characteristics of the application are as follow:

1. Data reception on TCP socket from 10-15 sources (channels).
2. Data processing for each channel - just extract data from raw bytes and assemble them into meaningful structures.
3. Displaying data on Main Window with different sub-windows in different formats( text & graphical).
4. Sending processed data to other systems on TCP/ UDP sockets.
5. The display to be updated every 1 second.

My proposal for the above:
1. Attach QDataStream for each channel (socket) for easy access and manipulation of data.
2. Worker thread for each data channel for processing.
3. "After processing, storing the processed data into saperate QDataStream objects, again for easy access of data by GUI thread" or "Use of signals/ slots in threads for data communication with Main Window".

My questions are:
1. Which threading mechanism should I adapt for better utilization of multi-core CPU (4th generation i7 with 8GB of RAM)?
2. Which mechanism to adapt for storing data received on TCP sockets, for easy access and processing by other threads?
3. Is MVC mechanism suitable (in this case) for data-control as it is being accessed and utilized by other windows. Sub-Windows also include tabular displays.


I hope I have conveyed my requirements.

Please suggest your points, they matter a lot in my design.

Thanks in advance.

swamy.