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ć):