Nitni bazen
Vedno sem si želel projekt prepisati v asinhron, vendar je ASP.NETMVC3 preveč okoren za pisanje, .NET 4.5 in ASP.NET MVC koda je razmeroma preprosta, Microsoft je to vedno rad počel, vsaka zrela stvar se mora razviti v več različicah, da se standardizira. ASP.NET zakaj je treba uporabljati asinhrono v MVC, ima IIS nitni bazen za obdelavo uporabniških zahtev; ko pride nov zahtevek, bodo niti v bazenu načrtovane za obdelavo zahteve, vendar ko je sočasnost visoka, niti v bazenu ne morejo več izpolniti toliko zahtev, vsaka nit v bazenu je zasedena med obdelavo zahtevka, nit, ki obdeluje zahtevo, bo blokirana in nit ne more nuditi storitev drugi zahtevi, če je čakalna vrsta zahtev polna, splet Strežnik zavrne zahtevo in je v stanju zasedbe HTTP 503. Če imate opravka z visoko zakasnitvijo, kot so omrežne operacije, večina teh niti večinoma samo čaka na stanje in ne naredi ničesar, takšne niti lahko uporabljajo asinhrono programiranje za boljšo izrabo.
Asinhrono procesiranje
Na primer, če zahteva ustvari omrežni klic, ki traja dve sekundi, se zahteva izvedeIzvajanje traja dve sekundi, tako sinhrono kot asinhrono。 TodaMed asinhronim klicem strežnik ne blokira odgovora na druge zahteve, medtem ko čaka na dokončanje prve zahteve。 Zato, kadar je veliko zahtevkov, ki kličejo dolgotrajne operacije, lahko asinhrone zahteve preprečijo vrstno vrsto zahtev. V .NET 4.5 je največji nabor niti 5000, v .NET 4.5 pa so bile dodane tudi ključne besede za čakanje in asinhronizacijo za poenostavitev asinhronega programiranja.
Sinhrono ali asinhrono (odlomek iz MSDN)
- Običajno se sinhronizacijski cevovodi uporabljajo, kadar so izpolnjeni naslednji pogoji:
- Preprosto delovanje ali kratek čas delovanja.
- Preprostost je pomembnejša od učinkovitosti.
- Ta operacija je predvsem CPU-jeva operacija, ne pa obsežna obremenitev diska ali omrežja. Uporaba asinhrone metode za operacije, omejene na procesor, ne prinaša nobene koristi in povzroča tudi večji strošek.
Na splošno se asinhroni cevovodi uporabljajo, kadar so izpolnjeni naslednji pogoji:
- Operacije so omejene na omrežje ali I/O, ne pa na procesor.
- Testi so pokazali, da so operacije blokiranja ozko grlo za zmogljivost lokacije, in z uporabo asinhronih metod za te klice lahko IIS sprejme več zahtev.
- Paralelizem je pomembnejši od preprostosti kode.
- Želite zagotoviti mehanizem, ki uporabnikom omogoča preklic dolgotrajnih zahtev.
ASP.NET uporabljajo asinhrone krmilnike v MVC
|