Согласно моему познанию ASP.NET Core
и если сильно не углубляться в детали, то на сегодняшний день обработка HTTP-запросов на одноядерном процессоре происходит следующим образом:
R1
) и его нужно обработать. ThreadPool
береться Поток Исполнения (T1
) и ему передается этот запрос R1
для дальнейшей обработки. Если в ThreadPool не было (случай когда это первый запрос, который обрабатывает приложение со времени запуска или все потоки заняты) свободного потока, то он создается.R1
еще не закончилась, но приложению прилетел другой запрос (R2
).ThreadPool
берётся другой поток T2
и уже обработкой R2
-запроса займётся T2
.А теперь представим, что приложение ASP.NET Core
имеет только один поток T1
.
R1
и T1
принялся к его обработке.R1
еще не закончилась, но приложению прилетает второй
запрос R2
.T1
необходимо обработать R2
тоже. И для этого
организуется конкурентность, то есть, наш единственный поток
попеременно будет переключаться с одного запроса на другой.Я в начале отметил "... и если сильно не углубляться в детали" и возможно какие-то детали я не знаю и хотел бы узнать. А пока, я не понимаю, разве предложенная вторая однопоточная модель не имеет место быть? Зачем нужны эти вторичные потоки, ведь процессор так и так только один? Почему он не может с одним потоком "прыгать" с запроса на запрос и попеременно обрабатывать их?
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
У меня есть generic метод преобразующий IQueryable<T> и возвращающий IOrderedQuerable<T> при помощи Linq-to-Entities
Пытаюсь как тут добавить ReactJS к проекту, но при добавлении этой строки:
У меня есть несколько скриптов, в одном выполняется в Awake парсинг xml, и значения заносятся в Dictionary, а в других выполняется получение значения...