Mettiamo che per esempio con un programma devi scaricare delle pagine da Internet. Queste pagine però sono in PHP, quindi il "collo di bottiglia" non è la CPU e nemmeno la connessione ad Internet, ma la velocità di risposta del server. Allora puoi fare 10, in modo da richiedere 10 pagine contemporaneamente alla volta e metterci 1/10 del tempo. Hai mai visto i download manager che fanno il segmented download ? Il principio è quello. In alcuni casi (non sempre) il multithreading ti permette di eliminare colli di bottiglia. Aggiungo: il multithreading è naturalmente indispensabile quando si devono avere processi paralleli che non interferiscono con il processo corrente: un'applicazione classica sono i timer.