Evet arkadaşlar, şimdi bu slaytta olay döngüsünün iç işleyişini tartışacağız.
Diyagramdaki slaytta görebileceğiniz gibi, bu iki dişli sistemini görebilirsiniz.
Bu birlikte sistem aslında bir olay döngüsü iş parçacığı olarak adlandırılan bir
üçlüyü temsil eder ve bu iş parçacığı sonsuz bir döngü yürütür.
Bu konu sadece askıya alınıp devam ettirilebilir.
Ama bu konu asla sonlanmıyor.
Tamam.
Yani sonsuz bir döngüde çalışan bir olay döngüsü iş parçacığımız var.
Ve bu konu başlığı sadece bu konu başlığı ve hakimiyetimiz tarafından bir özgeçmişi askıya alabilir.
Sonra gördüğünüz ikinci şey, bir görev dizisindeki bir görev, bir hesaplama dizisidir.
Ve dediğim gibi, hesaplama hiçbir şey değildir, ancak fonksiyon ve argümanının bir kombinasyonudur.
Bu yüzden Tasker'ı bir bağlantı listesi olarak uygulayacağız.
Başka bir deyişle, tutkal bile hiçbir şey değildir, ancak bir
iş parçacığı artı görev adı verilen bir veri yapısıdır.
Bu kadar.
Bunlar olay döngüsünün iki bileşenidir.
Bu üçlü, bu görev üzerinde hareket eder.
Tamam.
Bu yeşil kutu, uygulamanızdan tamamen yalıtılmış olan olay döngüsü sorumluluğunu temsil eder.
Tamam.
Uygulamanızda, uygulamanızın iş parçacıklarından biri yürütüldüğünde şu
anda çalışan birkaç kabileye sahip olabilirsiniz.
Hesaplamayı olay döngüsüne gönderin.
Bu hesaplama bu finans ve bu argüman tarafından temsil edilir, bu nedenle
bu API'yi yazacağız ve bu API'nin uygulanmasını kısa bir süre sonra tartışacağız.
Ancak bu API'nin uygulama tarafından çağrılır çağrılmaz olay
döngüsüne yeni hesaplama göndermek için kullanıldığını varsayalım.
Hesaplama bu görevin içine yerleştirilecektir, ancak.
Tamam.
Dolayısıyla, yeni iş oluşturmak için bu API'yi kullanarak, uygulama zirvesi
even lube tarafından even lube görevine yürütülecek yeni bir yarışmadır.
Şimdi, yağlama bile bir şey değildir, ancak daha önce
açıkladığım görevleri üzerinde hareket eden ayrı, bağımsız bir ipliktir.
Luke bile bir makine gibi yürür, hesaplamayı görev
düzenleyicisinden alır ve bir yürütme yığınına yerleştirir.
Dolayısıyla, bu görevin başı olan Buddy'den yeni yarışmayı
alır ve bu argüman üzerinde f işlevini çağırır.
Tamam.
Olay döngüsü iş parçacığının yaptığı budur ve tüm hesaplamalar ve
görev addy'si yürütülene kadar görevden hesaplamayı getirmeye devam eder.
Yani Döngüler bile tüm hesaplamaları kullanır ve bunları tek tek olay döngüsüyle boşaltır.
Ted, F2 ve Flyknit fonksiyonlarını alacak.
Bundan sonra, olay döngüsü F3 işlevine fiske atacak ve onu
dosyalayacaktır ve görev bitene kadar bunu yapmaya devam edecektir.
Görev boş olana kadar bunu yapmaya devam eder ve olay döngüsü
görevi tamamen tükendiğinde, olay döngüsü iş parçacığı askıya alma durumuna geçer.
Tamam.
Ve uygulama görev dizisine tekrar yeni bir rekabet
başlatana kadar askıya alma durumunda kalmaya devam eder.
Tamam.
Yani Lou bile, yine, bazı uygulamaların yazın yeni rekabetini görev hikayesine bağladığını varsayıyor.
Şimdi bu genel tasarımdan, olay döngüsü Pratt'in Toscana'dan hesaplamayı alıp ateşlediğini,
uygulama iş parçacığının ise göreve yeni bir rekabet başlattığını görebilirsiniz.
Böylece üretici tüketici modelini burada gerçekleştirebiliriz.
Bu ortak veri yapısıdır.
Uygulama bu veri yapısına yeni öğeler sıralarken, olay
döngüsü iş parçacığı bu veri yapısından öğeleri kaldırır.
Tamam.
Bu da uygulamanın üretici olarak hareket ettiği anlamına gelir.
Yani, Club Ted bile bir tüketici olarak hareket etmektedir.
Yani bu tipik bir üretici tüketici sorunu, başka bir şey değil.
Hatta bakıyorsunuz, Ted sizin uygulama tehditlerinizden ayrı.
Bunun nedeni de farklı kabilelerin bu genel yapı üzerinde hareket ediyor olmasıdır.
Aynı zamanda, bu görevde NQ ve BQ operasyonunu korumamız gerekiyor.
Eddy yeni güverteleri kullanıyor.
Tamam.
Şimdi, yeni bir yarışmanın etkinlik yasasına sunulduğu noktadan, etkinlik döngüsünün
görevini tamamen tükettiği noktaya kadar gerçekleşen olaylar dizisini tartışalım.
Diyelim ki mutlu bir şekilde çalışan bir uygulama iş parçacığınız var ve zamanın bir
noktasında uygulama iş parçacığınız görüntünün bir sonucu olarak olay döngüsüne yeni bir hesaplama gönderiyor.
İkinci adımda, yarışma bu görevin içine çekilecektir.
Şimdi, herhangi bir olay döngüsü görevi boş olduğunda, olay döngüsü iş parçacığının askıya alındığını unutmayın.
Tamam.
Ve uygulama tarafından bir olay döngüsünün önündeki göreve yeni bir yarışma başlatılır başlatılmaz,
olay döngüsü tehdidi sinyalize edilir veya başka bir deyişle, yürütülmeye devam eder.
Bu onları olaydan önce durdurmak demek Lou.
Ted, ilk görevi görev yerleştirme bölümünden alacaktır.
Tamam.
Böylece söz konusu görev, görev listesinden çıkarılır.
Ve sonra beşinci adımda, bu özel yarışma TED olay döngüsü tarafından başlatılır.
Yani yarışmalar, uygulama tehdidi bağlamında değil,
olay döngüsü tehdidi bağlamında tetiklenir.
Uygulama, bir numaralı adımda gerçekleştirilecek yarışmayı
olay döngüsü iş parçacığına devretmiştir.
Şimdi beş numaralı adımda, bu hesaplama tetiklenir ve bu kod
satırında hesaplamanın kendisinin yeniden yeni bir hesaplama oluşturduğunu görebilirsiniz.
Böylece, altı numaralı durakta yeni bir görev oluşturulur ve olay yağlama görevine gönderilir.
Yine, bu yarışmanın board adında bir işlevi vardır ve argüman IRG bir ile temsil edilir.
Tamam.
Yani bir bakıma, yarışma verebilir ama başka hesaplamalar yapabilir diyebilirsiniz ve bu kod
satırı, yeni bir yarışma yaratıyoruz ve onu tekrar denenen olay döngüsüne gönderiyoruz.
Ve sonra bu işlev, print up ifadesini yazdırarak tamamlama işlemini gerçekleştirir.
Böylece yedi numaralı adım bir çıktı üretir.
Bu benim favorim.
Şimdi, yedi numaralı adımdan sonra, uygulama iş parçacığı
tarafından olay döngüsüne gönderilen ilk hesaplama tamamlanmıştır.
Şimdi olay döngüsü tad'ın görevde bulunan bir sonraki hesaplamayı arama zamanı.
Şimdi sekiz numaralı adımda ikinci görev olay döngüsü
iş parçacığı tarafından görev dizisinden çıkarıldı ve tekrar.
Ve bunun sonucunda bu hesaplama görevden
çıkarılır ve dokuz numaralı adımda tetiklenir.
Ve bu nedenle, 10 numaralı adımda.
Yeni yarışma çubuğu, Bar adı verilen kendi çıktısını oluşturur.
Yani şu anki genel sonuç bu benim favori barım.
Tamam.
Son olarak, bu 11 numarada, olay döngüsü yine gerilim yaratıyor.
Bunun nedeni Oscar'ın artık boş olmasıdır.
Artık hesaplama yok.
Şans olayının tüm döngüsü bu şekilde işler.
Peki sizden olay döngüsü iş parçacığının yürütme döngüsünü temsil
eden bir akış şeması çizmenizi istesem, ne çizersiniz? Yani
burada olayla başlamak için bir akış şeması çizebilirim.
Döngü trendi askıya alınmış durumdadır ve uygulamalar yarışmayı olay döngüsü
iş parçacığına gönderene kadar askıya alınmış durumda olmaya devam eder.
Dolayısıyla bu noktada, bu olayda Loop Trad'ın boşta durumda olduğunu görüyoruz.
Yani, askıya alınmış durumda olmaktan başka bir şey yapmamaktadır.
Başvuru yapıldı mı? Etkinlik
döngüsüne bir yarışma gönderin.
Olay döngüsü iş parçacığına sinyal verilir ya da başka bir deyişle, iş parçacığının yürütülmeye başlandığını görürüz.
Dolayısıyla, olay döngüsü iş parçacığı yürütülürken ve ADI görevinden gelen rekabetle
mücadele ederken, olay döngüsü iş parçacığının aşağıdaki durumda olduğunu görürüz: bitiş.
Bekle, olay döngüsü TED işini bitirmek için bekliyor ve olay döngüsü savaştıktan sonra yoruldu.
Her yarışma, görev emrinin boş olup olmadığını kontrol eder.
Eğer görev boş değilse, rekabeti görevinden saptırmaya devam
edecek ve birbiri ardına tetiklemeye devam edecektir.
Ve görev boşaldığında, kulüp bile tekrar askıya alınmış duruma geçer.
Ve son olarak, olay döngüsü BQ, görevinden gelen rekabet, herhangi bir ve
bu adım, elbette, olay Lou geri dönüp görevinin boş olup olmadığını kontrol
etmeli ve görev boşalana kadar yıldız scutti'sinden hesaplamaları ateşlemeye devam etmelidir.
Bu, bir olay döngüsü testinin yürütme döngüsünü temsil eden
bir akış şemasıdır ve bu akış şemasını uygulayacağız.
Buradan çıkarılacak sonuç, olay döngüsünün herhangi bir zaman
noktasında bu iki durumdan herhangi birinde olabileceğidir.
Ya atıl durumdadır ya da hangi durumda olduğu bitmemiştir.
Olay döngüsü hesaplamayı tetiklediğinde, olay döngüsü durumu tamamlamış olur.
Ve olay döngüsü tüm hesaplamaları tetikledikten ve boş olduğunu
anlamaya başladıktan sonra, olay döngüsünün boşta durumuna geçmesi beklenir.
Tamam.
Olay döngüsü dediğimde, olay döngüsü iş parçacığını kastediyorum.
Şimdi bir sonraki ders videosundan başlamak
üzere, olay döngüsü trendinin uygulanmasına başlayacağız.
Artık bakmanın bile nasıl çalışması gerektiğini anladık.
Artık olay döngüsünün iç tasarımını ve işleyişini net bir şekilde anlamış bulunuyoruz.