Multi-threaded Programming: che ha di particolare?
Multi-threaded Programming: che ha di particolare?
di particolare.......
i thread sono processi che condividono lo stesso spazio di memoria e vengono eseguiti in modo concorrente dal sistema operativo... il che permette ad esempio, in un gioco 3d in tempo reale, di delegare a un thread la gestione dell'input mentre un altro thread si occupa del rendering opengl. In questo modo la risposta del programma all'input è più veloce.
Oppure immagina un sistema di calcolo complesso che utilizza più thread in parallelo: in un sistema multiprocessore questi sarebbero eseguiti contemporaneamente diminuendo il tempo d'esecuzione.
Comunque il problema dei thread sta nel fatto che più processi cercano di accedere in modo concorrente alle stesse locazioni di memoria: se il sistema operativo switcha processo prima che un'operazione di lettura/scrittura sia terminata ci possono essere notevoli problemi di corruzione dei dati & simili. Per ovviare a questo sono disponibili molte soluzioni assolutamente sicure e affidabili, ad esempio mutex, semafori, socket ecc ecc