Информация об изменениях

Сообщение Re[16]: Убийца C и C++ (и не только) от 27.01.2022 13:03

Изменено 27.01.2022 13:23 Serginio1

Re[16]: Убийца C и C++ (и не только)
Здравствуйте, alex_public, Вы писали:



S>>Плюс стеклесс — хорошая масштабируемость.


_>Ну вообще то в большинстве языков разницы практические не будет. )))


Как я уже писал раньше
https://ru.wikipedia.org/wiki/%D0%9F%D0%B5%D1%80%D0%B5%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BA%D0%BE%D0%BD%D1%82%D0%B5%D0%BA%D1%81%D1%82%D0%B0

Синхронизирующие примитивы ядра. Мьютексы, Семафоры и т. д. Это и есть основной источник проблем с производительностью. Недостаточно продуманная работа с синхронизирующими примитивами может приводить к десяткам тысяч, а в особо запущенных случаях — и к сотням тысяч переключений контекста в секунду. [источник не указан 2477 дней]


Для async await применяется WaitAsync https://docs.microsoft.com/ru-ru/dotnet/api/system.threading.semaphoreslim.waitasync?view=net-5.0
то есть при ожидании переключения потоков не происходит, просто освобождается поток из пула потоков и берется новая или продолжается уже запещенная задача
Re[16]: Убийца C и C++ (и не только)
Здравствуйте, alex_public, Вы писали:



S>>Плюс стеклесс — хорошая масштабируемость.


_>Ну вообще то в большинстве языков разницы практические не будет. )))


Как я уже писал раньше
https://ru.wikipedia.org/wiki/%D0%9F%D0%B5%D1%80%D0%B5%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BA%D0%BE%D0%BD%D1%82%D0%B5%D0%BA%D1%81%D1%82%D0%B0

Синхронизирующие примитивы ядра. Мьютексы, Семафоры и т. д. Это и есть основной источник проблем с производительностью. Недостаточно продуманная работа с синхронизирующими примитивами может приводить к десяткам тысяч, а в особо запущенных случаях — и к сотням тысяч переключений контекста в секунду. [источник не указан 2477 дней]


Для async await применяется WaitAsync https://docs.microsoft.com/ru-ru/dotnet/api/system.threading.semaphoreslim.waitasync?view=net-5.0
то есть при ожидании переключения потоков не происходит, просто освобождается поток из пула потоков и берется новая или продолжается уже запещенная задача
https://devblogs.microsoft.com/pfxteam/building-async-coordination-primitives-part-5-asyncsemaphore/