Evet, çocuklar, şimdi asenkron programlama üzerine örnek
projemizle başlama zamanı, bu yüzden bu proje
aracılığıyla bu derste öğreneceğimiz kavramları uygulayacağız.
Böylece proje async projesi olan bu dizinde bulunabilir.
Ve bu da sorun açıklamasıdır.
Ve çözüm, Ussing proje çözümü olarak
adlandırılan aynı konumdaki dizinde bulunabilir.
Konsolda görebileceğiniz gibi, ben bu bölümdeyim.
Tamam.
Ve bu dizinin içinde, projemizi temsil eden bir grup dosyam var.
Şimdi tüm bu dosyaların ne olduğunu ve bunların her birinin
neyi temsil edeceğini ve bu projeye nasıl başlayabileceğimizi tartışalım. Başlangıç
olarak slaytta görebileceğiniz gibi, Typekit'in görmediği bir dosyamız var.
Tamam.
Yani bu, uygulamamızı temsil eden dosyadır.
Ve adından da anlaşılacağı gibi, şartlı tohumdur.
Bu, mantıksal olarak tek iş parçacıklı bir uygulama olması gerektiği anlamına gelir.
Tamam.
Bu uygulama kendi iç veri yapısından sorumludur.
Şimdi bu veri yapısı herhangi bir şey olabilir ama ben yönlendirme tablosu
adı verilen basit bir tablo seçtim, örnek bir yönlendirme tablosunu burada görebilirsiniz.
Eğer bir ağ geçmişiniz yoksa, STV süreci tarafından tutulan
herhangi bir veri yapısı uğruna burada da önemli değildir.
Ben sadece bir yönlendirme tablosu aldım, ancak siz başka herhangi
bir şey alabilirsiniz ve bunu örnek yönlendirme tablosunda görebilirsiniz.
Dört alanımız var.
Bu dört hedef ve cami alanından hedef
Mars Ağ Geçidi ve giden arayüz anahtarlardır.
Ağ Geçidi ve ağ geçidi değerlerinin nedeni ise, her zaman rastgele bir IP adresi ve yaşamı alabilirsiniz.
Her zaman rastgele bir arayüz adı alabilirsiniz.
Tamam.
Yani bu yönlendirme tablosu dosyada uygulanıyor, eklenmiş bir ek
görmüyorum, bu yüzden burada iki dosyamız olduğunu görebilirsiniz.
Bu dosyada eklenmiş bir ek görmedim.
Sadece ve sadece yönlendirme tablosu API'lerini uygularım.
Başlangıç olarak, dosyayı üzerine açarsanız, bu.
Yönlendirme tablosunun hiçbir şey olmadığını göreceksiniz, ancak bu sadece hiçbir
şeyin etrafındaki iplerin bağlantılı bir listesidir, ancak yönlendirme tablosundaki
bir yatay kural olan yönlendirme tablosundaki bireysel bir girdidir.
Bu durumda, David'i çevreleyen yönlendirme tablosu girişi olarak adlandırıyorum ve yönlendirme
tablosunun bir adı var ve iplerin bağlı bir listesi olarak uygulanıyor.
Doğru.
Yani bu, yönlendirme tablosundaki ilk çıkışı gösteren bağlantı listesinin başıdır
ve count, rota sayısı ve yönlendirme tablosu anlamına gelir.
Yani bu listedeki giriş sayısı ve bağlı listenin her bir
düğümü hiçbir şey değildir, ancak yönlendirme tablosu girişimizi temsil eder.
Dediğim gibi, bu rotada hedef, cami hedefi ve cami olmak üzere dört alan vardır.
Bir anahtarı ne temsil eder? Ve
ağ geçidimiz ve giden arayüzümüz var.
Son güncellenme zamanı, bu yönlendirme tablosu girişinin oluşturulduğu zaman damgasıdır.
Dolayısıyla, birinci başlık kartı olan yönlendirme tablosu girişinin oluşturulduğu sadece ABD sistem zaman damgasıdır.
Tamam.
Ve bunların iki üye olduğunu görebilirsiniz, önceki ve sonraki.
Grupların bağlantı listesini bu şekilde uygulayabilirsiniz.
Ve dediğim gibi, yönlendirme tablosu hiçbir şey değildir, ancak yönlendirme tablosu girişlerinin bir bağlantı listesidir.
Yine de her yönlendirme tablosu girişinin mükemmel bir önceki noktası vardır.
Tamam.
Ve bunlar yönlendirme tablosu ile çalışmamızı yönetmemize yardımcı olan bir grup API'dir.
Dolayısıyla, elbette, bu API'nin dahili uygulamasını görmek zorunda değilsiniz, bu
nedenle bu API'yi hemen kullanabilirsiniz, böylece yeni bir yazı kağıdı
yönlendirme tablosu oluşturmak için yönlendirme tablosunun adını geçmeniz yeterlidir ve
başlatılmış bir yönlendirme tablosu oluşturacak ve yönlendirme tablosuna işaretçi verecektir.
Benzer şekilde, yönlendirme tablosuna yeni bir girdi eklemek için kullanılan ikinci API'ye de sahipsiniz.
Yani bu ilk argüman, yeni bir rota eklemek istediğiniz yönlendirme tablosuna bir işaretçidir.
Ve zaten her şüphede bu dört alana sahip olmanız gerektiğini biliyoruz,
yani hedef ağ geçidi IP adresi ve giden arayüz olmalıdır.
Yani bu API başarılı olduğunda sıfır, başarısız
olduğunda eksi bir mi oluyor? Pekala.
Yönlendirme tablosunda yinelenen girişlere izin verilmez ve yönlendirme tablosundaki giriş,
hedef ve cami anahtar olarak kullanılarak benzersiz bir şekilde tanımlanır.
Varış noktası ve piyasa değeri kombinasyonu, yuvarlak masada benzersiz bir şekilde bir rota belirlemek
için anahtar olarak ele alınmaktadır ve basitlik adına, çalışmam arasında her zaman şunu seçtim.
Benzer şekilde, yönlendirme tablosundan bir rotayı silmek istersiniz.
Bunun için hedefi ve kütle değerini anahtar olarak geçirmeniz gerekir.
Ve bu API sıfırda altı bin eksi bir başarısızlıkla sonuçlandı.
Benzer şekilde, yönlendirme tablosu girişindeki yönlendirmeyi güncellemek istersiniz.
Bunun için, yönlendirme tablosunda güncellenmesi gereken belirli bir rotayı
tanımlayacak olan hedef ve kitle değerini iletmeniz gerekir.
Ve sonra yeni Ağ Geçidi IP adresini de geçmeniz gerekir.
Ve güncelleme yapacağınız yeni giden arayüz yönlendirme tablosu girişlerinde yer alır.
Yani bunlar, bu API'nin geliştiriciden geçmesini beklediği yeni değerlerdir.
Tamam.
Ve tabii ki, bu API başarıda sıfır, başarısızlıkta eksi bir.
Yani bu oldukça kolay.
Yönlendirme tablosu, bağlantı listesinin yönetimiyle ilgili olduğu anlamına gelir; bu da
çağrılan bir tür veriyi geri yükler ve başka bir şey değildir.
Bu da yönlendirme tablosunu görüntülemek için kullanılan API'dir.
Tamam.
Bu da yönlendirme tablosundan belirli bir rotayı aramak için kullanılan API'dir.
Bu yüzden, yuvarlak masadan yukarı bakmanız için size emanet edilen bir yolun anahtarını ayrıştırmanız gerekir.
Tamam.
Bu yüzden bu API'lerin uygulanmasını tartışmayayım çünkü buna gerek yok.
Bununla birlikte, ilginizi çekmesi için, bu API'nin uygulanmasını
ve dosyayı her zaman görebilirsiniz veya görmediniz.
İşte dosyanın içindeyim, ah, görmedim.
Evet arkadaşlar, şimdi ana uygulamamız olan aptal uygulamamıza geliyoruz.
Yönlendirme tablosunun, adım adım işlemle sahip olunan veri yapısını temsil ettiğini görebilirsiniz.
SGP sürecimizin tek iş parçacıklı bir süreç olması gerektiğini
ve bu kısıtlamayı ihlal edersek projemizin başarısız olacağını unutmayın.
Mantıksal olarak, SGP sürecimizi her zaman tek bir
iş parçacıklı süreç olarak sürdürmemiz gerektiğini görmeliyiz.
Şimdi Dot C dosyası ortalama fonksiyonunu ve bu ortalama fonksiyon sırasını içerdiğinden, ana
tehdidin kullanıcıdan girdi kabul etme ve yönlendirme tablosunu güncelleme sorumluluğuna sahip olduğunu görebilirsiniz.
Şimdi, dosyayı Typekit be easy olarak çalıştırırsanız, dosyanın aşağıdakileri göstereceğini göreceksiniz.
Ana menü ve yan yana, SDP dosyasını da tartışmama izin verin.
Burada ask to be dosyasını açtım ve tartışmamıza ana işlevle başlayalım,
böylece bunu görebilirsiniz, ancak Typekit Nazi olarak yönlendirme tablosundan kim sorumludur.
Bu yüzden Nazi olmak için dosyalarda küresel bir oran aldım.
Ve SDP süreçlerimiz başlar başlamaz, yuvarlak masayı başlatıyoruz.
Yeni yönlendirme tablosu oluşturmak için API'mizi kullanma.
Cerf boş bir yönlendirme tablosu oluşturacak ve ardından ana iş parçacığımız sonsuz bir döngüye girecektir.
Ve ilk yıllarınızda programlamayı öğrenerek birçok kez
menü odaklı bir program yazmış olmalısınız.
İşte burada görüntülenen ana döngü budur.
Yani şimdi, eğer Çin'in bir numaralı merakını seçerseniz, yönlendirme tablosu boş olacaktır.
Ve eğer iki numaralı seçeneği seçerseniz, bu sizden yeni
bir yönlendirme tablosu girişi oluşturmanızı istediği anlamına gelir.
Diyelim ki hedef IP adresini 122 nokta
1.1.1 olarak belirleyerek yuvarlak masa girişi oluşturdum.
Kütle değeri de her zaman varsayılan olarak hedeftir, bu nedenle cami değerini ve
seçebileceğiniz ağ geçidi IP adresini ve IP adresini ve giden arabirimi girmeniz gerekmez.
Arayüz adını temsil eden herhangi bir rastgele dize seçebilirsiniz.
Pekala, enter tuşuna bastığınızda yönlendirme tablosunun güncellendiğini görebilirsiniz.
Böylece bir numaralı seçeneği seçerek yuvarlak tabloyu görüntüleyebilir ve
kullanıcı tarafından oluşturulan ante'nin yönlendirme tablosuna eklendiğini görebilirsiniz.
Benzer şekilde, yönlendirme tablosuna daha fazla giriş eklemek
için iki numaralı seçeneği tekrar tekrar seçebilirsiniz.
Yönlendirme tablosundan mevcut bir girişi silmek için dört numaralı seçeneği seçebilirsiniz.
Tamam.
Böylece bu ana menü ile bir süre oynayabilirsiniz.
Şimdi slayta geri dönecek olursak, kullanıcıdan gelen girdiyi kabul etme ve Nazi'nin istila
ettiği yönlendirme tablosu veri yapısını güncelleme sorumluluğunun ana iş parçacığında olduğunu söylemiştim.
Bu sadece yönlendirme tablosunun ana tehdit bağlamında güncellendiği anlamına gelir.
Gördüğünüz gibi yönlendirme tablosunu işleten ana tehdidin kendisidir.
Kullanıcı seçim yaptıktan sonra, kullanıcı seçim numarasını girdiğinde,
Clia işleyici işlevini yalnızca ana iş parçacığından çağırırız.
Ve bu Clia işleyici işlevinde.
Seçime bağlı olarak, kullanıcı bir, iki, üç, vb. seçenek numarasını girmiş
olsun, ben ölüyorum veya girişi yönlendirme tablosundan siliyorum, bu kadar basit.
Yani asıl önemli olan, yönlendirme tablosunun, bilirsiniz, yapısının
bu adım sürecinin ana tehdidi bağlamında güncelleniyor olmasıdır.
Sonra ağ geliyor.
Kullanıcının paket dinleyici tuzakları oluşturmasına izin vermek için hüküm sağladım.
Bu paket dinleyici iş parçacıkları ağ soketini dinler ve
ağ paketlerini almak için bir konumda hazır olur.
Tamam.
Yani ikili dosyada, beş numaralı seçeneği seçerseniz,
kullanıcı bir paket dinleyici iş parçacığı oluşturuyor.
Dolayısıyla, beş numaralı seçeneği seçtiğinizde, ağ soketinin oluşturulacağı veya paket
dinleyici iş parçacığının dinleyeceği bazı bağlantı noktası numaralarını belirtmeniz gerekir.
Örneğin, bu durumda, rastgele kırk bin sayısını girdim ve yerel
IP adresi olan 127.0.0.1 IP adresini dinleyen, ancak kırk bin
numaralı bağlantı noktasını dinleyen paket dinleyici iş parçacığı oluşturuldu.
Benzer şekilde, yine beş numaralı seçeneği seçerek başka bir paket dinleyici izi
oluşturabilir ve bu sefer 50000 olan başka bir bağlantı noktası numarası sağlayabilirsiniz.
Yani yine bir paket dinleyicisi oluşturmaya çalışıyor.
Şimdi şu aptala gelelim.
Bakalım geri çekilmiş, en azından doğru yaratılmamış.
Yani kullanıcı beş numaralı seçeneği girer girmez.
Gösterimde de görebileceğiniz gibi, kullanıcıdan port numarasını girmesini istiyorum ve ardından basitçe
bir API UDP sunucusu çağırıyorum, oluşturuyorum ve başlatıyorum ve 127.0.0.1 IP adresini
ve kullanıcı tarafından girilen port numarasını dinleyen UDP sunucu iş parçacığım oluşturuluyor.
Ve sonra paket dinleyicisi tarafından ağdan alınacak tüm
paketleri alacak olan bu paket işlem işlevini geçiriyorum.
Ya da başka bir deyişle, geriye dönük dinleme, geriye dönük süreç işlevini
çağırarak aptal Nazi sürecinin iç yapısını azaltmaya yönelik bir yol diyebilirsiniz.
Tamam.
Şimdi, başlatmak için oluşturulan bu FBI UDP sunucusu, başlatmadığınız
dosya ağında uygulandı ve uygulaması ağ yönlendiricilerinde, dropsy'de mevcut.
Şimdi bu noktada, ağ programcılığı ile
çalışmak için bir geçmişiniz olmayabileceğini varsayıyorum.
Bu nedenle, ağ geriye dönük dinleyici iş parçacıkları olan paket dinleyici iş parçacıklarının nasıl
oluşturulacağına dair tüm uygulamaları duydum ve tüm karmaşıklık ve ayrıntılar dosya ağında gizlidir.
Paket dinleyici iş parçacıklarının nasıl oluşturulacağına ilişkin dahili uygulamayı
görmek için işle ilgili hiçbir amacınız olmadığını görmeye başlayabilirsiniz.
İhtiyacınız olan tek şey, bir paket dinleyici iş parçacığı oluşturmak için
bir API UDP sunucusu çağırmanız, oluşturmanız ve başlatmanız gerektiğini bilmektir.
Tamam.
Beş numaralı seçenek seçildiğinde, tahmin süreci istediği
kadar paket ve iş parçacığı oluşturabilir.
Kova dinleyicisi, bir iş parçacığı harici ağdan paketi
alır almaz, bu işlev paket işleme işlevi çağrılacaktır.
Bu paket işlem işlevi yerel bir işlevdir ve
Dot C olması istenir ve aşağıdaki imzalara sahiptir.
Yani bu, ağdan alınan mesajdır.
Bu, mesaj boyutu davetleridir.
Bu, uzak makineden bu mesajı gönderen kişinin gönderici IP adresidir.
Bu göndericinin IP adresi ve göndericinin kendisinin bir port numarası olacaktır.
Tamam.
Ve bu dosya tanımlayıcısını her zaman yok sayabilirsiniz.
Bu noktada, 40000 ve 50000 numaralı bağlantı noktalarını
dinleyen yinelenen bir dinleyici iş parçacığı oluşturdum.
Şimdi size tüm paket dinleyici iş parçacıklarının uzak ağdan paket alabileceğini göstereceğim.
Bunun için, istemciniz olan bir dosya olduğunu görebilir veya bu programı çalıştırıp çalıştırmadığınızı görebilirsiniz.
En azından bizim kurulum sürecimizin bir parçası değil, arkaya rota
göndermek için ayakta durmak için belirli parametreleri geçmeniz gerekiyor.
Tamam.
Dolayısıyla, bu çalıştırılabilir dosyayı çağırmak için, paket dinleme
iş parçacığınızın dinlediği yerel IP adresini geçmeniz gerekir.
Dediğim gibi, paket dinleyici 127.0.0.1 IP adresini dinleyerek başarılı olur.
Ve iki paket dinleyici tuzağı olduğundan, hangi
pakete olduğunu belirtmeniz gerekir, hadi belirtmeyelim.
Neden veri göndermek istiyorsunuz? Bu durumda,
kırk bin numaralı bağlantı noktasını dinleyen
paket dinleyicisi triad'a veri göndermeye çalışıyorum.
Ve belirtmem gereken bir sonraki şey, paket dinleyici iş parçacığına göndermek istediğim rota.
Diyelim ki 100 veya 1.1 ağ geçidi IP adresini imzalamak istiyorum.
Standart 1.1.1 herhangi bir şey alabilir ve arayüzü zamanında alabilirsiniz.
Tamam.
Yani enter tuşuna basar basmaz, oh, bu yetersiz.
TAMAM.
Ve aktarmanız gereken son argüman, o adım işleminde yönlendirme tablosu
üzerinde ne tür bir işlem gerçekleştirmek istediğiniz, silmek isteyip istemediğinizdir.
Bu özel rota.
Bunu siparişle ilgili güncellemek istiyor musunuz, buna inanmak istiyor
musunuz? Yani buna dayanarak, belirli bir kodu geçmeniz gerekiyor.
Yani kod burada tanımlanmıştır, bu yüzden bir tane geçirmeniz gerekir.
Tip adım işleminin yönlendirme tablosunda bir rota oluşturmak istiyorsanız,
rotayı güncellemek istiyorsanız ikiyi geçmeniz gerekir ve bunu yönlendirme
tablosundan silmek istiyorsanız geçmeniz gerekir, bu kadar basit.
Diyelim ki bir rota oluşturmak istiyorum, bu yüzden basitçe bir tane geçeceğim.
Ve enter tuşuna basın, şimdi çalışmakta olan adım sürecine
gelin, paket dinleyici iş parçacığının bazı bilgiler aldığını görebilirsiniz.
Tamam.
Böylece, tarafından gönderilen yönlendirme tablosunu güncelleyecektir.
Uzak ağ tarafından.
Şimdi yönlendirme tablosunun içeriğinin ne olduğunu görmek için bir numaralı
seçeneği seçmeme izin verin. Ve yeni bir rota oluşturulduğunu görebilirsiniz.
Dolayısıyla, paket dinleyici iş parçacığı uzak ağdan
bilgi aldığı için bu kuraklık yaratılır.
Tamam.
Benzer şekilde, STV sürecimizin paket dinleyici iş parçacığına bir veri göndererek daha fazla rota oluşturabilirsiniz.
Diyelim ki bu sefer yaklaşık 100 ve 100 Nokta 1.1.2 oluşturmak istiyorum.
Ve yine, yönlendirme tablosunun içeriğini görüntülemek için bire
basarsanız, daha fazla sayıda girişin oluşturulduğunu görebilirsiniz.
Tamam.
Benzer şekilde, yönlendirme tablosundan daha fazla rota oluşturabilirsiniz.
Şu anda, 100 ve 1'i oluşturuyorum.
Diyelim ki bu sefer nokta 1.1.3 rotasını oluşturuyorum ve
verileri 50000 dinleyen paket dinleyici iş parçacığına gönderiyorum.
Yani aynı şeyi yapacaktır.
Ve bu kez yeni rotanın yeniden oluşturulduğunu görebilirsiniz.
Böylece her iki paket dinleyici iş parçacığının da çalıştığını, bu
ağdan veri aldıklarını ve paket işleme işlevini çağırdıklarını görebilirsiniz.
Dolayısıyla, paket dinleyici iş parçacığı verileri alır almaz koda
bakarsanız, paket işleme işlevi olan bu işlevi çağırırlar.
Ve şimdi alınan mesaj da budur.
Alınan mesaj aşağıdaki formata sahiptir, bu mesajın
ilk dört baytı aslında işlem kodudur.
Yani, yönlendirme tablosu girdisini oluşturmak mı yoksa güncellemek veya silmek mi istediğinizi belirtir.
Dolayısıyla, bu mesajın ilk dört baytı hiçbir şey değildir, ancak koddur
ve bu mesajdaki baytların geri kalanı format yönlendirme tablosu girişinde kodlanmıştır.
Tamam.
Bu mesajdan tüm verileri aldıktan sonra, basitçe bir API SDP güncelleme yönlendirme tablosu çağırıyorum.
Yönlendirme tablosuna bir işaretçi gönderdim.
Bu aptal sürecin global bir değişkeni.
Ne tür bir operasyon gerçekleştirmek istiyorum.
Ve ağdan alınan tüm verileri içeren yönlendirme tablosu girişi.
Pekala, Hedef Mars Ağ Geçidi ve giden arayüzü içerecektir.
Ve basitçe SDP yönlendirme tablosunu güncelle işlevini çağırıyorum.
Ve komut koduna bağlı olarak, doğru işlemi gerçekleştirmek
için yönlendirme tablosunun uygun API'sini çağırdığımı görebilirsiniz.
Çoğu değeri, işleri basit tutmak amacıyla görmek için her zaman Typekit'in yaptığı gibi sabit kodladım.
Tamam.
SGP sürecinin tüm yapısı budur ve
umarım bu noktada bunu iyi anlamışsınızdır.
Yönlendirme tablosu, ana tehdit bağlamında kullanıcı tarafından ve paket bağlamında
ağ tarafından eşzamanlı olarak güncellenebilir, en azından doğru değildir.
Dolayısıyla, her ikisinde de uzak ağdan aynı anda veri alabilen iki paket
dinleyici iş parçacığı vardır ve buna göre adım süreçlerinin yönlendirme tablosunu güncelleyeceklerdir.
Tamam.
Böylece tek iş parçacıklı olduğu varsayılır, ancak bu noktada, yönlendirme
tablosu aynı anda iki Atlas dinleyici kabilesi ve kullanıcı
giriş yolu tarafından güncellendiği için bu varsayımı ihlal eder.
Bu basitçe, şu andaki tahmin sürecimizin güvenli olmadığı anlamına gelmektedir.
Bu adım sürecindeki işlemleri gerçekleştirmeye devam ederseniz, neden
bir yalan görelim veya verileri bir ağa gönderirken?
Tahmin süreciniz yanlış davranabilir, segment hatası verebilir, çökebilir,
yanlış sonuçlar verebilir veya herhangi bir şey olabilir.
Sanırım bu noktada, projenin kodunu tamamen açıkladım ve bu dizindeki
bu dosyaların her birinin ne yaptığını tam olarak anladınız.
İşte bir Challis Grubu, genellikle varlıkları değil kurtarmaları söylüyor, Shell betiğinin içeriğini görürseniz,
hiçbir şey yapmıyor, ancak her paket dinleyici iş parçacığına yalnızca 10 tur gönderiyor.
Bu grup, SGP sürecinin kırk bin kırk bin bir ve kırk bin iki
numaralı bağlantı noktasını dinleyen en azından doğru olmayan üç paket oluşturduğunu varsayar.
Bu komut dosyasını çalıştırdığınızda, kırk bin kırk bin bir
ve kırk bin iki numaralı panolara onar mermi göndereceğiz.
İzin verin işlem olarak kabul edeyim ve tekrar çalıştırayım.
Kırk bin numaralı bağlantı noktasını dinleyen bir paket dinleyici iş parçacığı oluşturmama izin verin.
Port numarasını dinleyen bir paket listesi oluşturayım, tekrar okumayayım.
Kırk bin bir.
Kırk bin iki numaralı bağlantı noktasını dinleyen üçüncü bir paket dinleyici iş parçacığı oluşturmama izin verin.
Tamam.
Ve şimdi bu parlak komut dosyasını çalıştırmama izin verin, bu şekilde göndermenize veya test etmenize izin verilecek.
Ve şimdi UDP şüphesi komut dosyasını çalıştıracağım, bir arama göndereceğim ve
komut dosyasını çalıştırdıktan sonra, yönlendirme tablosunu yazdırabilir ve bunu bulabilirsiniz.
Tutuklanan tahmin süreci bugün şüpheleri öğrendi.
Yani bu şüpheler, UDP şüpheleri ve emirleri komut dosyası çalıştırılarak öğrenilir, bu kadar basit.
Eğer analiz ederseniz, bu diyagramda yapmaya çalışmadığım üç paket listesi oluşturdum,
sadece iki paket listesi olduğunu gösterdim, iş parçacığı yok ve bu
paketlerin her ikisi de, hiçbir iş parçacığı ağdan veri almıyor.
Ve bu paket listelerinin çoğu, iş parçacığı değil, daha sonra verileri
bozucu tabloya itiyor ve böylece rotaları ve güney tablosunu dolduruyor.
Böylece paket dinleyicinin neyi tuzağa düşürdüğünü görebilirsiniz.
Gösterimizde, üç paket dinleyici iş parçacığı bulunmaktadır.
Tüm trip braketi dinleyici izleri, herhangi bir mukus üretimi veya herhangi
bir iş parçacığı senkronizasyonu olmadan yönlendirme tablosunu aynı anda günceller.
Bu da demek oluyor ki SGP programımız oldukça güvensiz bir şekilde
takip ediliyor ve eğer programımız çökerse ya da yuvarlak masa
nüfusu tanık olabileceğiniz herhangi bir beklenmedik davranışta hatalı davranırsa şaşırmayın.
Dolayısıyla, bu noktada, geliştiricinin birden fazla iş parçacığı başlatmak zorunda kaldığını görebilirsiniz
çünkü birden fazla olayı dinlemek için işlenecek en iyi gereksinim buydu.
Ancak aynı zamanda, geliştirici birden fazla olayı dinlemek için birden fazla dinleyici
iş parçacığı başlattığında, tahmin sürecimizin tek izli bir süreç olarak kalması gerektiği
varsayımımız olmasına rağmen, bir adım süreci zorla çok iş parçacıklı sürece dönüştürülür.
Bu yüzden bir sonraki ders videosunda size bu anomaliyi nasıl tedavi edebileceğimizi
göstereceğim, şimdi yaptığımız bir sonraki derste size tüm bu olayı göstereceğim.
Döngü Kütüphanesi ilk işlemle entegre edilebilir ve geliştirici
bu paket dinleyici iş parçacıklarını nasıl sağlam tutabilir.
Ancak aynı zamanda, Make the event loop kütüphanesinin
yardımıyla, etkinlik süreci içindeki hesaplamayı analiz edebiliriz.
Yani, Olay Döngüsü Kütüphanesi, birden fazla dinleyici iş parçacığı varken,
bu Stibbe sürecinin veri yapılarının eşzamanlı güncellemesini nasıl kaldırabilir?