Evet, çocuklar, şimdi çözümümüzün uygulanmasına başlayalım.
Yani yapacağım şey şu.
Çözümü doğrudan Ussing proje çözümünde uygulayacaktım, bu
yüzden sadece Directory Housing projesinin bir kopyasını
oluşturacağım ve async proje çözümü olarak adlandıracağım.
Bu yüzden çözümü bu dizinde uygulayacaktık.
TAMAM.
Yani yapacağım şey, çözümü sgp underscore
l don't edge dosyasında uygulayacaktım.
Tamam.
Ve nokta olarak başka bir dosya oluşturacağım, bakın.
Dolayısıyla şu anda nasıl yapılacağı dosyasına bakılması gereken bir dosyadayım.
Ve bu yüksek profilli, olay döngüsünün yanı sıra yönlendirme tablosunu
da kullanacağız, bu yüzden ilgili hidro tesisleri dahil ettim.
Şimdi yapmamız gereken ilk şey mavi bir nesne oluşturmak.
Tamam.
Due process'in ilk etapta olay döngüsü ile çalışması için mavi bir nesneye sahip olması gerekir.
Bu yüzden SDP TPL dosyasında global bir değişken alacağım.
Tamam.
Bu yüzden bazı standart yanıtlar eklemem gerekiyor, çok fazla
reklam içeriyor ve bu benim küresel olay döngüsü nesnem.
Tamam.
Şimdi olay döngüsü nesnesini başlatmak için kullanılan işlevi tanıtmama izin
verin ve bu işlevin prototipi dosyaya TPL eki olarak gidecektir.
Ve bu işlevin bu olay döngüsü nesnesini başlatması gerekiyor, bu kadar basit.
Yani içinde bir fonksiyon olay döngüsü ve olay döngüsü var.
Koş.
Tamam.
Ve Typekit'in görmediği gibi finale gelirsek, SDP yield attach dosyasına yeni nasıl dahil edileceğini
hash etmemiz gerekiyor ve ana işleve gideceğim ve burada olay döngüsü nesnesini başlatacağım.
Tamam.
Ve bu dosyada, global değişkeni içe aktarmam gerekiyor.
Tamam.
Yani dosyada TPL not olarak tanımlanan mavi nesnenin bile global değişkeni var.
Ve bu global değişkeni Typekit Nazi olarak dosyaya aktarıyorum.
Bu yüzden dosyadaki bu global değişkeni Typekit Nazi olarak içe aktarıyorum, böylece ana fonksiyonda.
Bu global değişkeni başlatabilirim.
Böylece olay döngüsü nesnesinin adım sürecimizle entegrasyonu tamamlanmış olur.
Şimdi işleminizin bu olay döngüsü nesnesinin bir konumunda olup olmadığı sorulur.
Tamam.
Şimdi, önce iki numaralı adımı uygulayalım.
Öyle.
Liste, işleyici değil, daha önce Woking SGP Güncelleme Yuvarlak Masa Toplantısı'nda doğrudan işlev görür.
Tamam.
SGP Dot Nazi dosyasına bakarsanız, bunun bir silo işleyici iş parçacığı olarak
ve Clia işleyici işlevinde görev yapan ana iş parçacığı olduğunu görebilirsiniz.
Diplomatik yuvarlak masa olarak çalışıyorduk.
Tamam.
Ve benzer şekilde, paket işlem fonksiyonunda, SGP güncelleme yönlendirme tablosunda çalışıyorduk.
Ancak bu iki numaralı adımdan biri olarak, bu işleyici işlevi SGP Yönlendirme Tablosunu
Güncelle adlı alternatif bir API'yi yürümeli ve yönlendirme tablosunun enkazı olarak durmalıdır.
Tamam.
Öyleyse bu iki numaralı adımı hemen uygulayalım.
Peki ne yapacağız, basitçe yönlendirme tablosunun
ucunu elastik yönlendirme tablosu ile değiştireceğim.
Tamam.
Ve bunu bu dosyanın her yerinde yapacağım.
Ancak şimdi bu fonksiyonu tanımlamamız gerekiyor ve bu
fonksiyonu her zamanki gibi alakasız olacak şekilde tanımlayacağız.
Ve son adımda bu işlevin uygulanmasını sağlamak görmeyecektir.
Pekala, şimdi, yuvarlak masayı güncellemek için bu işlevin
hesaplamayı olay döngüsüne gönderme sorumluluğuna sahip olduğunu görebilirsiniz.
İşte burada.
Zirve, etkinlik döngüsüne rekabet.
Bunun için de API kullanmamız gerekiyor.
Yeni iş büstleri yaratır, burada çift döngüye işaretçi, hesaplama fonksiyonunu geçmeliyiz.
Ve burada tartışmayı geçmeliyiz.
Yeni iş oluştur işlevinin prototipi bunu söyler ve ardından bu görevi döndürür.
Şimdi buradaki soru, bu hesaplama işlevinin ne olduğudur? New Job'daki
görevimizin hesaplama işlevinin programın genişliğinde olmasını beklediğini zaten biliyoruz.
Ve neden buna başlamak için bu yarışma fonksiyonunun prototipi olmalıdır, yani bu yarışma
fonksiyonu hiçbir şeye dayanmamalı ve sadece bir yıldızlı bir argüman kabul etmelidir.
Tamam.
Bunlar da bu yarışma fonksiyonuna verilmesi gereken argümanlardır.
Şimdi burada soru şu ki, yönlendirme tablosunu, komut kablosunu
ve yönlendirme tablosu girişini iletmek için üç argümanımız var.
Ancak burada yalnızca bir argümanı iletmek için bir hükmümüz var.
Bu da basitçe, bu üç argümanı tek bir kap,
bir yapı veya nesne içinde paketlememiz gerektiği anlamına gelir.
İşte bu nedenle, bu üç argümanı bir araya getirebileceğimiz bir konteyner
yapısı veya konteyner nesnesi olarak kullanılabilecek yeni bir yapı tanımlamamız gerekiyor.
Bu yüzden dosyada böyle bir yapı tanımlayalım büyük olmak zorundadır.
Ve böyle bir yapıyı güncellenen masada eşit olarak adlandıralım.
Ve tam olarak üç bombacıyı ve bu üç
üyeyi de tutabilecek bu yapı içinde bulmalıyım.
Tamam.
Dolayısıyla, fonksiyonda ve SDP güncelleme yönlendirme tablosunda, bu üç argümanı
az önce tanımladığımız yeni yapı içinde bir araya getirelim.
Verileri tablolamak için bu tipte bir nesne oluşturalım.
Ve şimdi bu nesnenin alanlarını tek tek doldurun.
Böylece yönlendirme tablosu güncellenecek tablonun işaretçisini içerecektir.
AT&T benim sonuncum olmalı.
Ve sonra bu yapıya bir argüman olarak sağlanan sanat
tablosu ve iki içeriğine göre basitçe üyelik yapabilirsiniz.
Ve şimdi burada basitçe bu yeni nesneyi tek bir argüman olarak iletebiliriz.
Tamam.
Birden fazla argümanın aktarılması gerektiğinde, tüm nesneleri tek bir birim
olarak bir araya getirmek için bir kapsayıcı görevi görebilecek bir
yapı tanımlamamız gerektiğinde, verileri İran Kütüphanesine bu şekilde aktardık.
Ve yeni iş oluşturmak için bu API'ye tek argüman olarak bu tek nesneyi aktarabiliriz.
Şimdi bu hesaplama fonksiyonuna gelelim.
Dediğim gibi, bu hesaplama fonksiyonu aşağıdaki prototipe sahip olmalıdır.
Öyleyse aynı prototipte bir fonksiyon tanımlayalım.
Dolayısıyla, bu API'ye ikinci bir argüman olarak ayrıştırılması gereken bu işlevdir ve bu üçüncü
argümanın olay döngüsü kütüphanesi tarafından bu işleve bir argüman olarak ayrıştırılacağını zaten biliyoruz.
Yani tipleme yapacaktık.
Argüman? Kod akışının tamamını anlarsanız, bunun SGP süreci
tarafından yeni iş oluşturmak için API kullanarak hesaplamayı
olay döngüsüne göndermek için kullanılacak işlev olduğunu görebilirsiniz.
Bu hesaplama işlevidir ve bu da hesaplama argümanıdır.
Şimdi bu hesaplama fonksiyonu olay döngüsü tarafından çağrılacaktır ve
yönlendirme tablosunu en sonunda güncellemek bu hesaplama fonksiyonunun sorumluluğundadır.
Bu diyagramda da görebileceğiniz gibi, şu anda dört numaralı adımı uygulama sürecindeyiz.
Bu yüzden Typekit Update Routing Table olarak bir API çağırmamız gerekiyor,
bu da sonunda beş numaralı adımda gerçek veri yapısını güncelliyor.
Burada yapmamız gereken tek şey bir şekilde SGP Update Roundtable API'sini
yürümek, yani şimdi bu API'ye aktarılması gereken tüm argümanlara sahibiz.
Öyleyse yönlendirme tablosunu geçelim.
Ortak kodu geçelim.
Ve yönlendirme tablosu girişini geçelim.
Dolayısıyla, bu SGP güncelleme yönlendirme tablosunun çağrılmasından
sonra, yuvarlak tablomuz olay döngüsü tarafından güncellenecektir.
Ve şimdi serbest bırakmamız gereken tüm ilgili hafızayı serbest bırakma zamanı.
Tamam.
Şimdi tüm sürecin bütünsel görünümünü ele alırsanız, dosyalarda görmemeniz gereken şeyi
yaptık, plaka yönlendirme tablosunu yükseltme çağrısını L.A.P.D. işlevi ile değiştirdik.
Yönlendirme Tablosu.
Tamam.
Ve bu işlev TB süreci tarafından çağrılır çağrılmaz, yeni iş oluşturmak için
bir API'deki adım süreci, hesaplamayı olaya, döngü kütüphanesine veya olaya gönderir.
Görüntü iş parçacığı kuş gribi üçlüsünü ateşlediğinde, bu geri
arama işlevini çağıracağız ve bu geri arama işlevini sonlandıracağız.
Aynı argümanı tekrar alıyoruz ve sonunda yuvarlak tablonun
içeriğini güncellemek için girecek olan gerçek API'yi güncelliyoruz.
Tamam.
Ancak bu kez bu API, kuş
gribi tehdidi nedeniyle devreye sokuluyor.
Bu beş adımın tamamını uygulamış olsak da olmasak da, bir numaralı adımın
zaten orada olduğunu ve dinleyicilerin hesaplamalarının bir kısmını ilgili işleyicilere aktardığını görelim.
Yani bir numaralı adım değiştirilmemiştir.
Zaten oradaydı.
İkinci adım, işleyici işlevlerinde SGP güncelleme yönlendirme tablosuna yapılan
çağrının LSD güncelleme yönlendirme tablosu ile değiştirilmesiyle uygulanmıştır.
Tamam.
Yani bu iki numaralı personel, üç numaralı adım dosyada Typekit veya
C olarak uygulandı, burada Elastic Roundtable rekabeti olay döngüsüne çağırdı.
Yani bu üç numaralı personeldir ve dört numaralı
adım olay döngüsü kütüphanesi tarafından otomatik olarak tetiklenir.
Olay Döngü Kütüphanesi bu kombinasyon işlevini çağıracak ve
sonunda yönlendirme tablosunu hızlandıran gerçek API'yi çağıracaktır.
Yani bu, yönlendirme tablosunu güncelleme olarak gerçek API'yi çağırmadan önceki adımdır.
Ve bu kısa bir yuvarlak masa toplantısı olmalı.
Son olarak, Stibbe sürecinin yuvarlak masa dönemi yapısını güncelleyin.
Yani bu API'nin kendisi tarafından halledilen beş numaralı adımdır.
Şimdi projelerimizi derlemenin veya projemizi derlemenin zamanı geldi.
Compile not assets dosyamızı da güncellememiz gerekiyor.
Şimdi Typekit'in görmeyeceği şekilde yeni dosyayı derleyecek bir satır ekleyelim.
Ayrıca olay döngümüzü derlerken olay kulübünü de görmeyelim.
Ve şimdi bu aptalın yaratılması mazeret değil, aynı zamanda döngü nesne dosyasına bile bağlı.
Yanı sıra.
Çok fazla olmak üzere, tüm nesne dosyaları, yani reklam modu, nesne dosyaları burada ve işimiz
bitti ve bazı derleme hatalarını kaldırmamız gerekiyor, örneğin, görmediğimiz dosya ipucunda, bu işlevin statik adlarını
kaldırmamız gerekiyor çünkü bu işlev artık başka bir dosyada TPL olarak kullanılıyor veya bkz.
İşte bu yüzden bu işlev artık statik olamaz.
Ve Typekit burada kullanıldığı için görmeyeceği için bu fonksiyonu dosyaya aktaralım.
Böylece harici bir klavye kullanarak işlevi başka bir dosyaya aktarırsınız ve
ayrıca dosyada, D'nin 44 numaralı satırda olduğu satır numarasında göreceğiniz gibi.
Oh, sadece karakterler, Mystic.
Ve şimdi ve şimdi, projeyi tekrar derleyeyim, bu yüzden bana dosyada
derleme veya 12 numaralı satıra bakma konusunda bir hata daha veriyor.
Şiddete maruz kaldım.
12.
Tamam, otobüs yönlendirme tablosu girişi içindeki sıra burada.
Ve biz değiliz.
Şimdi, proje başarıyla birleştirildi ve bu projeyi şimdi yürütürseniz,
daha önce olduğu gibi tam olarak aynı şekilde davranacaktır.
Artık Come Online'ı kullanarak Clia Order'ı kullanarak yuvarlak masaya yeni bir giriş oluşturabilirsiniz.
Bu nedenle, alternatif sıfır olarak standart 1.1.1 giden arabirimi olan bir kapı değil,
122 2.1.1 civarında oluşturmama izin verin ve yuvarlak tabloda yeni giriş oluşturacaktır.
Ancak bu girişin sıralama tablosuna eklenmesinin olay tarafından yapıldığını unutmayın.
Lou Pratt.
Şimdi kırk bin dört numaralı panoda kırk bin bir numaralı
veya Hayır'ı dinlemek için RSVP işlemi yapmama izin verin.
Kırk bin iki.
UDP Proud Sam bildirimlerini tekrar kullanmama izin verin ve bunu tekrar görebilirsiniz.
Yönlendirme tablosunda aynı sayıda giriş oluşturulur.
Ve unutmayın, şimdi tüm işi yapan olay döngüsüdür.
Artık dinleyici iş parçacıkları adına yönlendirme tablosuyla etkileşime giren olay döngüsü eğilimidir.
Unutmayın, bu, bir uygulamanın genel bir kütüphaneye hesaplama
veya veri gönderme şekliyle ilgili ortak modeldir.
Dolayısıyla, izlediğimiz iki ve üç numaralı adımlar, uygulamanın verileri veya
hesaplamaları herhangi bir genel kütüphaneye göndermek için kullanacağı genel adımlardır.
Benzer şekilde, işleminizde IPC dinleyici iş parçacığı veya bir zamanlayıcı çalıştıran dahili
bir iş parçacığı gibi daha fazla dinleyici iş parçacığı olup olmadığı sorulursa,
tüm bu iş parçacıklarının hesaplamalarını aynı şekilde olay döngüsü kütüphanesine göndermeleri gerekir.
Bu yüzden bir sonraki derste zamanlayıcılarla çalışalım çünkü bir zamanlayıcı özel bir dikkat gerektirir.
Timeless ise tek iş parçacıklı süreçlerde eş zamanlı rekabet yaratmaya çalışan bir başka kaynaktır.
Bu nedenle, bir sonraki derste zamansızlığın hatalı döngü kütüphanesi tarafından nasıl
ele alındığını tartışacağız, böylece işlenmesi istenen ana hedefimiz mantıksal olarak kalmalıdır.
Tek iş parçacıklı bir süreç hala devam etmektedir.