Evet arkadaşlar, şimdi bu videoda, bir önceki
ders radyosunda tartıştığımız problem cümlesinin çözümünü tartışacaktık.
Dolayısıyla sorun ifadesi, SDP sürecinin mantığının listelenen birkaç
kabile bağlamında eşzamanlı olarak yürütüldüğü konusunda açıktı.
Ve bu, işlem olması istenen varsayımlar olsa da,
tek iş parçacıklı bir işlem olmak zorundadır.
Yani şimdi çözüm çok basit.
Olay döngümüzü adım sürecimizle entegre edeceğiz ve
Hollywood Loop'un aslında bu sorunu çözdüğünü göreceğiz.
Böylece olay döngümüzün geri döndüğünü görebilirsiniz ve çözüm çok basittir,
her dinleyici kabilesi hesaplamasını olay döngüsüne devredecektir, yani her dinleyici
iş parçacığı veya zamanlayıcı kabilesi hesaplamasını olay döngüsüne sıraya koyacaktır.
Ve sonra bu olay döngüsü, Scotty yıldızının içine
sıralanmış olan her bir hesaplama üzerinde uçacaktır.
Örneğin, ağdan bir B paketinin alındığını varsayalım.
Packet Listener Trust bu paketi soket üzerinde dinliyor.
Tamam.
Şimdi, paket dinleyici iş parçacığı B paketinin sokete alındığını tespit ettiğinden, paket
dinleyici iş parçacığı B paketiyle birlikte işlev paketi sürecini de sıraya koyacaktır.
İşin içine.
Böylece fonksiyon process'e geri döner ve dysfunction'a argüman paket olur.
Daha önce de söylediğim gibi, bu argümanla birlikte bir fonksiyona hesaplama denir.
Yani paket dinleyici iş parçacığı, hesaplamayı ve olay döngüsünün görevini sıraya koyacağız.
Benzer şekilde, her dinleyici bunu denedi.
Burada ilgili hesaplamayı olay için sıraya koyacağımızı görebilirsiniz,
bu kadar basit bir şekilde döngüye sokuyoruz.
Yani bu dinleyicilerin SGP sürecinin mantığını doğrudan
çalıştırarak hesaplama yapmayacakları, bunun yerine kendi hesaplamalarını
olay döngüsüne sıraya koyacakları anlamına gelmektedir.
Ve bu olay döngüsü daha sonra ex-staff'a aktarılan her bir hesaplamayı tetikleyecektir.
Teker teker aldım.
Yani başardıklarımız, yolda kaybedilmiş zaman değil.
Hesaplamayı olay döngülerine, görev dizisine ve olay döngüsüne sıraya koyacağız,
ardından sıraya konan tüm hesaplamayı ciddi bir şekilde çalıştırıp katlayacağız.
Yani gerçekten teker teker kaçırıyorsunuz.
Sonuç olarak, uygulama mantığı yalnızca bir ve yalnızca bir
iş parçacığı bağlamında yürütülür ve buna bakılan olay denir.
Tamam.
Böylece olay döngüsünü uygulamanın ana motoru olarak görselleştirebilirsiniz.
Uygulamanın herhangi bir bölümünü yürütmek olay döngüsü izinin sorumluluğundadır.
Uygulama mantığı herhangi bir iş parçacığı bağlamında yürütülmemelidir.
Aksi takdirde, uygulamanız çok iş parçacıklı olma eğiliminde olacaktır.
Dolayısıyla, tercih ettiğimiz nihai sonuç, dinleyicinin var olmaya çalıştığı, ancak eşzamanlılığın olmadığıdır.
Tamam.
Bunun mantığı şimdi işlenmeli, hatta bakılan ve sahip
olunan tek bir iş parçacığı bağlamında yürütülmelidir.
Eşzamanlılık yoktur, ancak harici ilgiyi dinlemeye devam eden dinleyici tuzakları vardır.
Süreç, okunan tek bir iş parçacığı bağlamında çalıştırılmalıdır ve
bu nedenle, süreç olarak tek iş parçacıklı tasarımı sürdürebiliriz.
SDP mantıksal olarak hala tek iş parçacıklı bir süreç olduğundan, herhangi bir kilitlemeye hala
ihtiyacımız yoktur ve bu nedenle iş parçacıkları arasında herhangi bir kilitleme veya çekişme yoktur.
Bu yüzden bir sonraki derste yapacağımız şey, örnek bir uygulama kurmak olacak.
Bir numunenin işlenmesi gerekiyor ve ben de entegre edeceğim.
Bu, şimdiye kadar yazdığımız olay döngüsü kütüphanesi ile işlenmelidir.
Daha sonra birkaç dinleyici iş parçacığı yazacağım, örneğin paket dinleyici iş parçacığı.
Süreç iletişim ipliğimiz.
Ardından, birden fazla dinleyici iş parçacığının herhangi bir iş parçacığı güvenliği olmadan kurulum
sürecinin dahili veri yapılarına erişmesine izin verilirse SDP sürecinizin gerçekten çökebileceğini göstereceğim.
Senkronizasyonumuz.
Bu yüzden öncelikle size sorunun gösterimini gösterecektim
ve ardından devam edip çözümü uygulayacağız.
Her dinleyici iş parçacığının hesaplamasını görev
arkadaşına sıraya koyacağı şekilde değişiklikler yapacağız.
Ve sonunda SDP süreci adına tüm hesaplamaları gerçekleştiren olay döngüsüdür.
Ve olay döngüsü kullandığımız için, SDP mantıksal olarak tek iş parçacıklı bir süreç haline gelecektir.
SDP sürecinin dahili veri yapılarına iş parçacığı güvensiz erişimi nedeniyle herhangi bir sorunla karşılaşmanız
söz konusu değildir, çünkü ilk etapta adım süreci içinde eşzamanlı iş parçacıkları yoktur.