Si tratta di un processo per così dire leggero. Il vantaggio è che un thread necessita di meno risorse rispetto ad un processo, con dei risvolti positivi in termini di performance. La pecca è che le applicazioni devono essere thread-safe per poter essere eseguite in un ambiente thread, ovvero:
Le funzioni (o i metodi per applicazioni orientati agli oggetti) devono essere “reentrant”, ovvero con lo stesso input devono produrre sempre lo stesso risultato anche se sono diversi thread ad eseguirle contemporaneamente. Le funzioni devono essere quindi programmate in modo da poter essere invocate contemporaneamente da più thread.
L'accesso alle risorse (spesso delle variabili) deve essere regolato in modo che si non verificano delle interferenze tra thread in esecuzione contemporaneamente.
Apache 2 esegue le richieste sotto forma di processi oppure in forma ibrida composta da processi e thread. L'esecuzione come processo viene realizzato dall'MPM “prefork”, l'esecuzione come thread dall'MPM “worker”. Durante l'installazione potete selezionare (si veda la sezione Section 23.5, “Installazione”) l'MPM da utilizzare. Lo sviluppo del terzo modo, “perchild”, non è ancora del tutto concluso, per tale ragione non è (ancora) disponibile su in fase di installazione.