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.

Wspomóż rozwój kursu

Trwa zrzutka na aktualizację kursu:

Komentarze facebook (polub nasz profil na FB aby je zobaczyć):
Książka dnia w Helion
Polecana książka do C#
Polecana książka Programowanie
Polecana książka .NET