Leistung - Multithread- oder Multiprozessanwendungen

Welche Architektur wird für die Entwicklung einer sehr netzwerkintensiven Serveranwendung unter Linux bevorzugt? Die Idee ist, dass diese App normalerweise auf Computern mit mehreren Kernen (entweder virtuell oder physisch) ausgeführt wird. In Anbetracht dessen, dass Leistung das Hauptkriterium ist, ist es besser, sich für eine Multithread-Anwendung oder eine Anwendung mit Multiprozess-Design zu entscheiden? Ich weiß, dass die gemeinsame Nutzung von Ressourcen und die Synchronisierung für den Zugriff auf solche Ressourcen von mehreren Prozessen aus einen hohen Programmieraufwand bedeutet, aber wie bereits erwähnt, ist die Gesamtleistung die Hauptanforderung, sodass wir diese Dinge ignorieren können. Und die Programmiersprache wäre C / C ++.

Ich habe gehört, dass sogar die Multithread-Anwendungen (einzelner Prozess) mehrere Kerne nutzen und jeden Thread auf einem anderen Kern unabhängig ausführen können (solange es keine Synchronisierungsprobleme gibt). Und diese Planung übernimmt der Kernel. Wenn ja, gibt es keinen großen Leistungsunterschied zwischen Multi-Threaded-Anwendungen und Multi-Prozess-Anwendungen? Nginx verwendet eine Multi-Prozess-Architektur und ist sehr schnell. Kann man mit Multi-Thread-Anwendungen die gleiche Leistung erzielen?

Vielen Dank.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage