Evet arkadaşlar, şimdi kursun bu bölümünü özetleyelim.
Yani birden fazla iş parçacığı, bu iş parçacıkları ister aynı sürece ister farklı süreçlere
ait olsun, çakışan işlerle aynı CPU'ları paylaştığında, bu iş parçacıkları eşzamanlı bir şekilde yürütülür, değil mi?
Aynı veya farklı süreçlere ait birden fazla iş parçacığı, çakışmayan işlerle aynı CPU'ları paylaştığında, yine
eşzamanlılığı doğru bir şekilde elde ederiz.
Dolayısıyla, iş parçacıklarının aynı ya da farklı sürece ait olması ya da iş parçacıklarının
yaptığı işlerin çakışıp çakışmaması gerçekten önemli değildir.
İş parçacıkları aynı CPU'ları paylaştığı sürece, iş parçacıkları eşzamanlı bir şekilde yürütülür.
Doğru.
Aynı veya farklı süreçlere ait birden fazla iş parçacığı, çakışmayan işlerle farklı CPU'ları
paylaştığında, bu, iş parçacıklarının paralel bir şekilde yürütüldüğü durumdur.
Dolayısıyla iş parçacıklarının paralel bir şekilde çalışması için iş parçacıklarının tahsis edilmesi gerekir.
Yürütme için farklı CPU'ların yanı sıra iş parçacıklarının da gerçekleştirilmesi için çakışmayan işler tahsis edilmelidir.
Doğru.
Bu koşul yerine getirilirse, iş parçacıkları paralel modda çalışabilir.
Dolayısıyla aşağıdaki iki diyagram eşzamanlılık ve paralellik arasındaki zıtlığı çok net bir şekilde göstermektedir.
Eşzamanlı durumda t1 iş parçacığının çalıştığını ve t1 iş parçacığı çalıştığı sürece aynı işlemci üzerinde başka hiçbir iş parçacığının
çalışmadığını görebilirsiniz.
Doğru.
Ve sonra bağlam geçişi t1 iş parçacığından t2 iş parçacığına doğru gerçekleşir.
Daha sonra t iş parçacığı bir süre yürütülür ve ardından t1 iş parçacığı CPU'ya tekrar yüklenecek ve yürütülmeye
devam edecek şekilde tekrar bağlam değiştirme gerçekleşir.
Doğru.
Sol taraftaki diyagramın iş parçacığı yürütmenin eşzamanlı doğasını gösterdiğini, sağ taraftaki diyagramın
ise iki iş parçacığının aynı anda iki farklı işlemci üzerinde nasıl yürütüldüğünü gösterdiğini görebilirsiniz.
Değil mi?
T1 iş parçacığı çalışmakta ve işini yapmakta, T2 iş parçacığı ise sistemin farklı işlemcileri üzerinde
paralel olarak çalışmakta ve işini yapmaktadır.
Değil mi?
Böylece, teorik olmaktan çok pratik olan diğer multithreading kavramlarına geçmeden önce ele
almamız gereken tüm gerekli teoriyi tamamlamış olduk.