Şimdi, çocuklar, bahsettiğim bir sonraki soru,
madeni yağ dükkanı idealizmi olup olmadığınızdır.
Cevabım hayır.
Lube bile herhangi bir paralelliğe sahip değil, Toms eşzamanlılığı ve paralelliği
ve aralarındaki farkın ne olduğu sizin için açık olup olmadığı.
Eğer sistem hakkındaki anlayışınız biraz bulanıksa ve net değilse,
eşzamanlılık ve paralellik arasındaki farkı açıklayan diğer dersimden bazı
ders videolarını yüklediğim söylemin ek bölüm B'sine bakın.
Böylece çok çekirdekli bir sistemde, bağımsız iş parçacıkları birden fazla kursta paralel olarak çalışabilir.
Şimdi, bağımsız izler, sessiz ekseni kilitleyerek birbirini engellemeyen izlerdir.
Başka bir deyişle, bağımsız iş parçacıkları bir uygulamanın
tamamen farklı veya yalıtılmış veri yapıları üzerinde çalışır.
Eğer durum buysa, birinin diğer konuyu
sessize alarak engellemeye çalışmasına gerek yoktur.
Dolayısıyla bu tür tuzaklara bağımsız iş parçacıkları denir.
Ve eğer uygulama bağımsız iş parçacıklarına sahipse, bunlar
sistemin birden fazla CPU'sunda paralel olarak çalıştırılabilir.
Öte yandan, bir döngü bile tek iş parçacıklı bir sistemdir.
Olay döngüsü iş parçacığı olarak adlandırılan yalnızca tek bir iş
parçacığı vardır ve tek yürütme birimi bu iş parçacığıdır.
Uygulamanız her kod parçasına sahiptir.
Uygulamanızın her fonksiyonu Levent Loop Trap adı verilen sadece ve sadece bir iş parçacığı tarafından yürütülür.
Pekala, artık uygulama kodunuzun task adı verilen iş birimi
aracılığıyla bir döngü iş parçacığı tarafından yürütüldüğünü biliyoruz.
Bu nedenle görev, olay döngüsü iş parçacığı tarafından paralel
olarak değil, seri bir şekilde birbiri ardına yürütülür.
Ve şimdi, bu olay döngüsünün iç tasarımını ve işleyişini bildiğinize göre, o sizsiniz.
Görevlerin olay döngüsü iş parçacığı tarafından seri bir şekilde,
yani teker teker tetiklendiğini çok iyi anlamış olmalısınız.
Ve eğer kendisini tekrar tekrar kullanması gerekiyorsa, eşzamanlı olarak yürütme görevi ortaya çıkar.
Burada size bir yükleme indirme örneği yardımıyla gösterdim, ancak
burada en temel düzeyde, görevler seri olarak yürütülür.
Ancak aynı görev tekrar tekrar yapılması gerektiği için.
Böylece eşzamanlılık elde edersiniz.
Tamam.
Yükleme indirme örneğinde, iki farklı görevin eşzamanlı olarak nasıl yürütülebileceğini gösterdim.
Dolayısıyla Lou bile eşzamanlılık sağlar, ancak sistem çok
işlemcili bir sistem olsa bile paralellik sağlamaz.
Bunun arkasındaki temel neden ise, hatalı döngülerden
yararlanan uygulamaların tek iş parçacıklı uygulamalar olmasıdır.
Tek iş parçacıklı bir uygulama yürütmek için yalnızca bir CPU'ya ihtiyaç duyar.
Yani sisteminizin birden fazla CPU'ya sahip olması, ilk etapta
tek iş parçacıklı bir uygulama için işe yaramaz.