производительность - многопоточные или многопроцессорные приложения

Какая архитектура предпочтительнее для разработки серверного приложения с высокой интенсивностью работы в сети на Linux? Идея заключается в том, что это приложение обычно запускается на компьютерах с несколькими ядрами (виртуальными или физическими). Учитывая, что производительность является ключевым критерием, лучше ли использовать многопоточное приложение или приложение с многопроцессорным дизайном? Я действительно знаю, что совместное использование ресурсов и синхронизация доступа к таким ресурсам из нескольких процессов - это большая нагрузка на программирование, но, как упоминалось ранее, общая производительность является ключевым требованием, и поэтому мы можем игнорировать эти вещи. И язык программирования будет C / C ++.

Я слышал, что даже многопоточные приложения (один процесс) могут использовать преимущества нескольких ядер и запускать каждый поток в отдельном ядре независимо (до тех пор, пока не будет проблем с синхронизацией). И это планирование выполняется ядром. Если да, то нет ли большой разницы в производительности между многопоточными приложениями и многопроцессорными приложениями? Nginx использует многопроцессорную архитектуру и работает очень быстро, но можно ли добиться такой же производительности с многопоточными приложениями?

Благодарю.

Ответы на вопрос(2)

Ваш ответ на вопрос