Współbieżność w ASP.NET MVC
Metody synchroniczne i asynchroniczne (async, await).
W
.NET Framework do każdego
żądania ASP.NET przypisywany jest
jeden wątek. Jeśli żądanie jest przetwarzane synchronicznie to wątek zostaje zablokowany do czasu wykonania tego żądania.
Liczba wątków w puli jest
ograniczona i w .NET 4.5 jest to maksymalnie
5 000. Każdy wątek zajmuje ok. 1MB pamięci, co przy ilości 5000 daje 5GB na same uruchomienie wątków. Wątek jest blokowany aż do momentu, gdy otrzyma odpowiedź na żądanie, gdy klient nie odpowiada wątek czeka na odpowiedź i blokuje wykonanie innych żądań. Aby zabezpieczyć aplikację przed
blokowaniem wątków należy używać
metod asynchronicznych. Jeśli
żądanie jest
asynchroniczne jeden
wątek może obsługiwać
wiele żądań równocześnie.
Aby maksymalnie uprościć korzystanie z metod asynchronicznych w .NET 4.5 zostały wprowadzone dwa nowe słowa kluczowe:
async i
await.
Komentarze facebook (polub nasz profil na FB aby je zobaczyć):