Я пытаюсь получить простой HTTP-сервер с libevent и смог сделать это на основе примеров документации. Однако, без нитей, вся цель libevent - это мусор. Я не очень разбираюсь в потоках в C++ 11, но мне было бы интересно узнать, как правильно реализовать такой сервер.Многопоточный HTTP-сервер с libevent
Я нашел этот пример онлайн: https://gist.github.com/kzk/665437
Правильно ли это? Является ли pthreads правильным выбором? Кроме того, эта линия очень странная:
for (int i = 0; i < nthreads; i++) {
pthread_join(ths[i], NULL);
}
Что там происходит?
Вы должны прочитать о стратегиях обращения с несколькими клиентами. Один поток на клиента может быть субоптимальным. http://www.kegel.com/c10k.html#strategies –
Также, если вы хотите использовать потоки, и вы используете C++ 11, вы можете посмотреть здесь: http://en.cppreference.com/w/CPP/резьба/резьба. –
_ «Что там происходит?» _ - Эти 3 линии присоединяются к нитям, не заботясь о их коде выхода. Другими словами, основной процесс сервера ждет, пока все они не закончатся. – Damon