Bir iş parçacığı örneğinin start() metodunu çağırmak, iş parçacığını yürütmek ve hemen döndürmek
için yeterlidir. İş parçacığı eğer varsa diğer iş parçacıkları ile CPU kullanımı için yarışırken, yürütme bir sonraki ifadeden
devam eder. Özel bir sistem yöntemi olan thread scheduler (is parcacigi programcisi), iş parçacığını yürütmeye koymaktan sorumludur.
İleriki bir noktada bu programlayıcı iş parçacığının yürütülmesini durdurur ve bekleyen iş parçacıklarından birine yürütülmesi için izin
verir.
Yeni yaratılmış bir iş parçacığı ona sağlanmış run() metodunun çağırılmasıyla yürütülür. run() metodu
döndürdükten sonra iş parçacığı yürütmeyi tamamlar ve olduğu varsayılır. Ölmüş bir iş parçacığı tekrar start() metodu çağırılarak
yeniden başlatılamaz, fakat sıradan bir nesne gibi kullanılabilir (özelliklerini okumak, metotlarını çağırmak gibi). Yeni bir iş parçacığı
başlatmak için, iş parçacığı sınıfının yeni bir örneği yaratılmak zorundadır.
Her iş parçacığı 1 ile 10 arasında öncelik değerine sahiptir. Yeni yaratılan bir iş
parçacığı için varsayılan öncelik değeri 5 dır. İş parçacığı programlayıcısı yürütülecek iş parçacığını atanan bu öncelik değerlerine göre
belirler. Yüksek öncelik değerli iş parçacığının CPU u kullanma sansı diğerlerinden daha yüksektir. Bir iş parçacığının önceliği
setPriority metodunu çağırarak değiştirilebilir:
myThread.setPriority(<yeni öncelik değeri>);
Bir iş parçacığı yürütülürken, eğer ayrılan zaman dilimi bittiyse veya daha yüksek öncelikli bir iş parçacığı bekliyorsa,
programlayıcı yürütmeyi durdurabilir ve başka bir iş parçacığının yürütülmesine izin verir.
Bu şekilde iş parçacıkları CPU u kendi aralarında paylaşmış olurlar.
Bir iş parçacığı başka bir iş parçasının yürütülmesini bu iş parçacığının interrupt() metodunu çağırarak kesebilir. Bu yüzden
iş parçacığının yürütülmesinde isInterrupted() metodu çağırılarak, iş parçacığının kesilip kesilmediğinin kontrol edilmesi gerekir.