ho implementato un programma con due thread il cui scopo è leggere dati da schede, verificare se tali dati sono cambiati e se lo sono, visualizzare i risultati.

Ero molto indeciso se scrivere tutto il programma in sequenza oppure adottare la strada dei thread per introdurre un certo parallelismo ed ho pensato: se il numero di schede da analizzare si limita ad una allora l'uso dei thread forse non è giustificabile ma se il numero di schede è maggiore di una allora l'uso dei thread trova la sua giustificazione. Per fare un esempio avrei che, in quanto io accedo alle varie schede attraverso indirizzo ip:

//caso senza thread
schede[]={192.168.80.10, 192.168.80.11, 192.168.80.20};
byte buffer[512];
num_schede=3;
for (int i =0; i< num_schede; i++ ){

buffer = leggischeda(schede[i]);

for( int u = 0; u < 512; u++){
if(buffer[u] == ...... ) se è cambiato qualcosa allora visualizza e salva
}

in questo scenario le altre schede attendono il termine dell'esecuzione della scheda che la precede
}

//caso con thread
schede[]={192.168.80.10, 192.168.80.11, 192.168.80.20};
byte buffer[512];

//thread lettore scheda
threadLettore(char *ip)
{
buffer = leggischeda(ip);
for( int u = 0; u < 512; u++){
if(buffer[u] == ...... ) se è cambiato qualcosa allora visualizza e salva

}

//thread visualizza e salva
prinft();
fprintf();

in questo secondo scenario nessuna scheda attende l'altra e tutto si muove in parallelo.

Vi pare un pensata valida?


grazie


p.s.
3 schede sono solo un esempio in quanto potrebbero essere maggiori di 10