Ein Thread ist eine geordnete Menge von Befehlen, die sequentiell abgearbeitet wird. Ein Task oder ein Prozeß ist eine Instanz eines Programms, das aus einem oder mehreren Threads besteht. Threads verhalten sich wie eigenständige Prozesse, haben aber den gleichen Adreßraum, wie alle anderen Threads im gleichen Task.
Auf einem normalen Prozessor wird die Prozessorzeit vom Betriebssystem zwischen den Threads verteilt. Jedes Umschalten bedeutet dann, daß der Kontext eines Thread in den Speicher ausgelagert werden muß und der Kontext des nächsten Thread in die Register des Prozessors kopiert werden muß. Der Kontext besteht aus einem Befehlszähler, den Statusinformationen und den Inhalten der Register bzw. des Stack in einem Java-Prozessor. Da Zugriffe auf den Speicher im Vergleich zu Registerbefehlen sehr lange dauern, ist der Thread-Wechsel sehr zeitaufwendig.