Как многопоточные программы на C ++ 11 обычно ждут большого количества входных данных сокета и их возможности записи для вывода, событий таймера PLUS? - PullRequest
0 голосов
/ 14 апреля 2020

В однопоточных приложениях, особенно в C, я всегда использовал оболочки для select(), которые поддерживают приоритетную кучу таймеров для вызова в будущем, а также массивы файловых дескрипторов для контроля читабельности, возможности записи, и исключения. Библиотека X- Windows Xt имеет «Событие L oop» внутри XtAppMainLoop(), которое делает именно это.

В многопоточных приложениях, например, с десятками одноранговых процессов для взаимодействия и сотнями или тысячи событий таймера, зарегистрированных в go, в будущем, какие подходы часто используются, кроме использования однопоточного решения select() (или его более высокопроизводительных эквивалентов, таких как epoll()) в многопоточном контексте?

Вопрос в основном для C ++ 11 и новее, на Linux, но если есть решения Microsoft 1011 c, я бы тоже хотел получить общее представление о них.

...