Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / В чем смысл Task / 7 сообщений из 7, страница 1 из 1
29.08.2017, 06:56
    #39511964
stenford
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В чем смысл Task
Методы контроллеров могут возвращать Task<Result> если внутри метода есть асинхронный код. Утверждается, что это повышает производительность т.к. освобождается данный поток, но откуда именно эта производительность появляется? Разве каждый запрос в IIS не открывается и так в новом потоке? Или в IIS количество потоков как-то ограничено? Если пришло одновременно 500 запросов, в чем проблема дать каждому по потоку?
...
Рейтинг: 0 / 0
29.08.2017, 07:06
    #39511965
Алексей К
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В чем смысл Task
stenfordМетоды контроллеров могут возвращать Task<Result> если внутри метода есть асинхронный код. Утверждается, что это повышает производительность т.к. освобождается данный поток, но откуда именно эта производительность появляется? Разве каждый запрос в IIS не открывается и так в новом потоке? Или в IIS количество потоков как-то ограничено? Если пришло одновременно 500 запросов, в чем проблема дать каждому по потоку?Поток освобождается на время выполнения операций ввода/вывода, например запрос к БД или веб-сервису. Поток это достаточно дорогой ресурс, существуют задачи, в которых множество потоков может стать тонким местом.
...
Рейтинг: 0 / 0
29.08.2017, 07:08
    #39511966
Алексей К
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В чем смысл Task
stenfordЕсли пришло одновременно 500 запросов, в чем проблема дать каждому по потоку?500 потоков, это как минимум 500 МБ ОЗУ под стеки этих потоков.
...
Рейтинг: 0 / 0
29.08.2017, 07:24
    #39511970
stenford
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В чем смысл Task
Алексей К500 потоков, это как минимум 500 МБ ОЗУ под стеки этих потоков.

ок, что произойдет в IIS если пришло 500 синхронных запросов каждый из которых процессится скажем минуту? IIS таки создаст каждому по потоку в этом случае? Или у нее где-то стоит ограничение на макс. количество потоков на пул?
Кроме того, в случае асинхронных методов получается что количество потоков должно быть меньше чем запросов, скажем 50 потоков на 500 запросов. Когда один из запросов завершился ему-же все равно нужен теперь поток что-бы вернуть ответ, откуда этот поток теперь возьмется, новый создастся? Потоки-же вроде не могут просто "хранится" где-то на всякий случай. Непонятно как тут выйгрыш-то появляется в производительности, ведь либо для завершения метода все равно нужно создавать поток, либо методы будут ждать пока им достанется свободный поток
...
Рейтинг: 0 / 0
29.08.2017, 10:33
    #39512052
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В чем смысл Task
stenford,

наберите в гугле, или яндексе следующее: "iis working threads".
...
Рейтинг: 0 / 0
29.08.2017, 13:50
    #39512215
ViPRos
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В чем смысл Task
stenford,

будут ждать
...
Рейтинг: 0 / 0
29.08.2017, 13:51
    #39512216
ViPRos
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В чем смысл Task
а воще это (ждать) зависит от планировщика
...
Рейтинг: 0 / 0
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / В чем смысл Task / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]