2017-11-25 3 views
-3

Was ist der Unterschied in Bezug auf Leistung, Ressourcen usw. zwischen der Verwendung eines nicht blockierenden http-Clients und eines blockierenden HTTP-Clients, der auf einem getrennten Threadpool ausgeführt wird. Im letzteren Fall wird der Thread blockiert, aber die Verwendung eines separaten Threadpools reduziert die Auswirkungen auf den Rest der App. Gibt es einen tatsächlichen Unterschied? Es wäre wirklich hilfreich, wenn jemand das klären könnte.blockierender HTTP-Client, der einen getrennten Threadpool verwendet

+0

Im Allgemeinen eine gut gestaltete App mit einem Selector wird eine höhere Leistung, aber "gut gestaltet" hängt von vielen Details, die Sie nicht geliefert haben. – markspace

+1

dies ist eine zu weite Frage für Stackoverflow. vielleicht hilft das: https://softwareengineering.stackexchange.com/questions/321529/what-are-the-benefits-of-asynchronous-http – pedrorijo91

Antwort

0

Der blockierende Client wird mehr Ressourcen verwenden (hauptsächlich wegen zusätzlicher Threads - es bedeutet mehr Kontextwechsel und erhöhte Speicherauslastung aufgrund zusätzlicher Stacks). Ich denke, dass die meisten negativen Auswirkungen durch eine begrenzte Anzahl von Threads im Thread-Pool entstehen können - wenn alle Threads mit lang laufenden Anfragen blockiert werden, müssen "schnelle" Anfragen warten (selbst wenn sie abgeschlossen sind).

Verwandte Themen