La distinzione tra processo e thread è abbastanza universale per tutti i sistemi operativi. Un processo solitamente rappresenta un'unità di esecuzione indipendente con la propria area di memoria, risorse di sistema e slot di programmazione.
Un thread è in genere una "divisione" all'interno del processo - i thread di solito condividono la stessa memoria e le risorse del sistema operativo e condividono il tempo assegnato a tale processo. Ad esempio, quando apri il tuo browser e Microsoft Word, ognuno è un processo diverso, ma le cose che accadono in background (come animazioni, aggiornamenti o backup) possono essere thread.
Un lavoro è in genere un'unità di lavoro a esecuzione prolungata eseguita da un utente. Il lavoro può essere "gestito" da uno o più processi. Potrebbe non essere interattivo. Ad esempio, istruire la macchina per comprimere un file di grandi dimensioni o eseguire uno script di elaborazione su un file di input di grandi dimensioni in genere è un lavoro. La denominazione è relativamente storica: i mainframe utilizzati per elaborare i lavori. Nei sistemi UNIX, molti lavori vengono avviati automaticamente a orari prestabiliti usando cron, quindi si ha la nozione di "cron jobs".