it-swarm-tr.com

"Asenkron olay" tanımını anlamak kolay mı?

Bu terime çok rastladım ve Googling'den sonra bile tam olarak ne anlama geldiğini hala anlayamadım. Birinin sağlayabileceği asenkronize bir olayın ne kadar anlaşılması kolay (örnekler ile ideal) bir tanımı var mı?

Teşekkürler!

88
jasonbogd

Programlamayan örnek:

Synchronous Akşam yemeği için pizza istersiniz ve dondurulmuş çeşitler dışındasınız. Demek loncanı kızdıran WOW oynamayı bırakmalısın. Mutfağa gidip hamuru yap, sosla kapla, peyniri ekle ve en sevdiğin domuz pastırmasıyla boğ. Fırında 10 dakika daha pizza yapmak için sadece 20 dakikanızı ayırdınız. Zamanlayıcı bip sesi çıkarır ve sıcak pastayı çıkarırsınız. Bilgisayarınızın arkasına yaslanıp pizza yiyebilir ve baskına devam edebilirsiniz.

Asenkron WOW oynarken akşam yemeği için pizza istersiniz. 5. monitörünüzde bir tarayıcı penceresi açarsınız. Pizza web sitesini yüklüyorsunuz ve ekstra peynirli domuz pastırması pizzalarınızı bir parça domuz yağı sarımsak sosu ile sipariş ediyorsunuz. Baskınına geri dönüyorsun ve 20 dakika sonra kapı zili çalıyor. Pizzayı aldın. Bilgisayarınızın arkasına yaslanın, pizzayı yiyin ve baskına devam edin. 

Öyleyse fark nedir? Bir şekilde 20-30 dakikalık değerli WOW zamanını boşa harcarsınız, diğer yandan 20 $ artı bahşiş harcarsınız. 

423
epascarello

Sayfanız sunucudan bir istemci tarayıcısına, İnternet’te bir yerlere iletilir. Tarayıcı sayfayı bir ekrana çizdi ve birisi - ya da bazı şey - bakıyor. Bekleyen bir oyundur. Gözler ileri ve geri hareket eder, bu atmosfere hızlıca atlar ve bu ayrıntıyı alır, çevreye dikkat dağıtıcı şeyleri araştırmak için şimdi ve sonra ekrandan uzağa doğru dart. Saat keneler. Kullanıcı hareketsiz kaldığında, bir fare üzerine gevşek bir şekilde el dokunduğunda, boynu aşağı eğildiğinde ve sayfanızın sunması gereken bir şeyi daha fazla niyetle gördüğünde sayfa yumuşakça, pasif olarak parlıyor.

Aniden, herhangi bir uyarı olmadan, imleç, fare üzerindeki el hafifçe sertleştikçe hareket etmeye başlar ve küçük plastik şişeyi masanın pürüzlü yüzeyi üzerinde dürtmeye başlar. Fare hareket ettikçe, ekrandaki vekili yakın taklit olarak hareket eder, ilginç görüntüleri geçmişe sürükler ve sayfanızın içeriğinde esprili açıklamalar yapar. Sonunda bir karar verilir, hareket durur, bir kas veya iki kasılma hafifçe kalır ve fare düğmesine ısrarlı bir parmakla basılır. Faredeki mikroswitch elektronik bir etki yaratır ve aniden tarayıcı ne olduğunu fark eder: bir fare tıklaması.

Bütün bunlarda, kullanıcının sayfaya bakarken ne yaptığı ile ilgili her şey tarayıcıya, web sayfanızdaki herhangi bir müşteri koduna, sunucularınızda bulunan herhangi bir şeye tamamen öngörülemeyen bir şekilde gerçekleşmiştir. İnsan eylemleri arasında bilinen hiçbir bekleme süresi yoktu. Bu nedenle, kullanıcının bilgisayarına bağlı olan ekipman tarafından iletildiği gibi eylemler gerçekleştiğinde oldu ve öngörülebilir bir saate göre olmadı - yani asenkronize oldu.

19
Pointy

Röportajın sonunu düşünün ve adamlar "Bizi arama, sizi ararız" der. Eşzamansız bir olayın özü budur. 

Normal olarak, işlevleri tanımlarsınız ve işlevleri açıkça çağırırsınız. Programınız satır 1'den sonra satır 2'den başlayan bir yapıya sahiptir ve bazı koşullu kod ve yinelemeler, çağrı işlevleri vb. Dışında basit, liner, senkron bir yapı vardır.

Ancak bazı durumlarda, programın doğrudan kontrolü dışındaki olaylar tarafından tetiklenen, kullanıcı arabirimi etkinlikleri (kullanıcı fareyi tıklatır) veya bir ağ etkinliği (birisi bağlanmaya çalışır) gibi program dışından gelen eylemler tarafından tetiklenen eylemleriniz olur. sunucunuz). Kodunuz bu olayları doğrudan oluşturmaz. Programınızın dışında, çoğu zaman işletim sistemi tarafından kullanıcı arabirim aygıtlarını ve diğer sistemleri izlemelerine dayanarak oluşturulurlar. Bunlara senkronize olmayan olaylar denir.

Unutma, "Bizi arama, seni ararız"

18
Rob Weir

Zaman uyumsuz bir olay, uygulamanın ana iş parçacığı dışında çalışan bir olaydır.

Anlamanın en iyi yolu, eşzamanlı çalışan olaylarla karşılaştırmaktır. En tipik örnek bir web sayfası yüklemek olacaktır.

Bu sayfaya gittiğinizde, bir bağlantıya tıkladınız ve sayfanın yüklenmesini beklediniz ve yüklenmesini tamamlayana kadar bu sayfayla etkileşime giremedi ya da kullanamadı. Buna karşılık, bu sayfada bazı kullanıcı eylemleriyle ilişkili bir AJAX etkinliği (Asenkron JavaScript ve XML olayı) varsa, bu sayfa bazı verileri başka bir kaynaktan eşzamansız olarak (teorik olarak) diğer eylemlerle paralel olarak yükler devam ediyor.

İki Senkron Olayla Örnek (A ve B): İlk A bir şeyler yapar. A bittiğinde B bir şeyler yapar.

İki Eşzamansız Olay Örneği (A ve B): Hem A hem de B aynı anda bir şey yapar ve hiçbiri diğerini beklemez.

12
chaimp

"Programlamada, asenkron olaylar, ana program akışından bağımsız olarak meydana gelen olaylardır. Asenkron işlemler, ana program akışının işlemeye devam etmesini sağlayan, engelleyici olmayan bir düzende gerçekleştirilen eylemlerdir."

"Ajax ile web uygulamaları 'Dan sunucudan veri alabilirler. Arka plandaki eşzamansız olarak.

SO 'da Düzenle ve Kaydet'i tıkladığınızda, zaman uyumsuz olarak gerçekleşiyor.

12
Dejan Marjanovic

İşte javascript'te eşzamansız bir işlem örneği: (javascript konsolunuzun açık olması gerekir)

console.log('One!');
setTimeout(function(){console.log('Two!');},0);
//Doesn't wait
console.log('Three!');};

//OUTPUT:
//One!
//Three!
//Two!

console.log('Two!') çağrısı, ondan sonra gelen kodun geri kalanını engellemeden yürütülür.

Gerçek bir senaryoda, setTimeout'u bir web sayfasındaki bir düğmeyi tıklatarak değiştirin. Düğme tıklatmasına yanıt, sayfa oluşturma gibi diğer kod yürütülmesini engellemeden sonuçta gerçekleşir.

7
statenjason

Basitçe söylemek gerekirse, bu bilinmeyen bir süre sonra meydana gelen bir şey anlamına gelir, bu yüzden hemen sonuç beklemeyin.

Örneğin, "Anne, beş dolarım alabilir miyim?"

Elimi para için çıkarmak, bana anında para vererek cevap vermesini beklemektir (zaman uyumlu).

Gerçekçi olarak, bana bir iki saniye bakacak ve daha sonra (asenkronize) istediği zaman cevap vermeye karar verecek.

5
Kai

İki farklı olay birbirinden ayrı gerçekleştiğinde, yapamazsınız

task1
task2

bu task1 komutunu kontrol etmeden gerçekten bitti.

2
Teson

Eşzamansız olaylar, gelecekte ne zaman gerçekleşeceğini bilmediğimiz olaylardır; örneğin, bir dosya için sunucu talep edildiğinde, isteğimizi ne zaman yerine getireceğini bilmediğimiz veya kullanıcının ne zaman olacağını bilmediğimiz UI etkinlikleri Bir düğmeye veya diğer UI öğesine tıklayın, ancak sayfadaki veya uygulamadaki diğer şeylere rağmen, hiçbir şey engellenmiyor, sayfanın sunucudan bir dosya gelinceye veya bir olay her şey bağımsız olana kadar tüm UI'yi grileştirdiğini söylemez bu eşzamansız olayların gücüdür, sadece bağımsız olayları söyleyin

1
blackHawk

Kod eşzamanlı (veya senkronizasyon) ise, her kod parçasının sırayla çalıştığı ve bir sonraki kod parçasının bir önceki tamamlanana kadar çalışamayacağı anlamına gelir. Çoğu kod genellikle senkronizedir.

Kod zaman uyumsuz (veya zaman uyumsuz) ise, kodun ayrı ve diğer kodlardan bağımsız olarak çalışabileceği anlamına gelir. Bir grup senkronizasyon kodunun ortasında asenkron kod varsa, bu belirli soru bağlamında, asenkron kod yalnızca, senkronizasyon kodunda nereye koyduğunuzdan bağımsız olarak, etkinliği tetiklendiğinde çalışır. Tamamen ayrıdır ve senkronizasyon kodundan bağımsızdır ve yalnızca önceki kodun çalışması yapıldığında değil, etkinliği söylediğinde çalışır. Bunun bazı örnekleri zamanlanmış aralıklarla, bir dosya başarıyla kaydedildikten sonra, bir web isteği gönderildikten sonra, kullanıcı bir düğmeyi tıkladığında veya bir görüntü yüklendikten sonra çalışan kod için olabilir.

0
Grant Gryczan

Senkron Vs. Asenkron Olaylar

Bazı olay işleyicileri, olay gerçekleştiğinde hemen çağrılır. Bunlara "senkronize" olaylar denir. Bir örnek DocumentNew. Kullanıcı yeni bir belge oluşturduğu anda çağrılır.

Ancak, olay gerçekleştikten kısa bir süre sonra, genellikle kısa bir süre boşta kalma süresinden sonra bazı olaylar çağrılır. Bunlara "asenkron" olaylar denir. Bunlar asenkrondir, çünkü kullanıcı tarafından yazılmış bir makro olayın gerçekleştiği zamanda çağrılırsa Kaynak Sicili'ni dengesizleştirir.

0
Vitthal Walunj