View Single Post
Old 26-12-2018, 18:15   #9
pabloski
Senior Member
 
Iscritto dal: Jan 2008
Messaggi: 8406
Quote:
Originariamente inviato da zanardi84 Guarda i messaggi
In realtà ho scritto molto male adottando un'errata equivalenza thread = funzione ad esso associato come se questo avesse le proprietà della funzione.

Io volevo creare l'array all'interno della funzione in modo che fosse ritornato al main per cercare di ridurre al minimo l'utilizzo delle variabili globali.
Non e' tanto sbagliato. Nel senso che al thread e' associata una funzione che funge da entry point. Da li' in poi il flusso di esecuzione aggiunge un altro ramo parallelo/concorrente a quello principale.

E il main di fatto viene avviato in un thread di default creato dal runtime del linguaggio.

Il bello dei thread e' che, avendo accesso al medesimo spazio d'indirizzamento, ogni scambio di dati e' del tutto simile a quello che avviene tra normali funzioni in uno scenario single threaded.

Ovviamente bisogna stare attenti a quando si accede a variabili globali e/o comuni a piu' thread, altrimenti le race condition ti fanno a fette.

Pero' i thread rendono naturale il ritorno di valori ( anche puntatori ) dalle funzioni al main, senza nessuna particolare complicazione.
pabloski è offline   Rispondi citando il messaggio o parte di esso