Die Konvertierung von Single-Threaded zu Multi-Threaded bietet mehr als nur Vorteile. Es hat auch seinen Preis. Verwenden Sie Multithreading in Ihrer Anwendung nicht nur, weil Sie es können. Sie sollten eine gute Vorstellung davon haben, was Sie dadurch gewinnen werden, und der Nutzen wird die Kosten überwiegen. Versuchen Sie im Zweifelsfall, die Leistung oder Reaktionsfähigkeit einer Anwendung zu testen, anstatt nur zu raten.
Komplexeres Design
Während einige Teile von Multi-Threading einfacher sind als Single-Threading, sind andere Teile komplexer. Der Zugriff auf gemeinsam genutzte Daten über Code, der von mehreren Threads ausgeführt wird, erfordert besondere Aufmerksamkeit. Die Thread-Interaktion ist grundsätzlich immer einfach. Fehler, die durch eine falsche Thread-Synchronisierung entstehen, sind schwer zu erkennen, auftreten und zu beheben.
Kontextwechsel-Overhead
Wenn eine CPU von einem Thread zu einem anderen wechselt, muss die CPU die lokalen Daten des aktuellen Threads speichern. Programmzeiger und andere Informationen sowie das Laden der lokalen Daten des nächsten Threads, der Programmzeiger zur Ausführung. Dieser Schalter wird „Kontextschalter“ genannt. Die CPU wechselt vom Kontext der Ausführung eines Threads zum Kontext der Ausführung eines anderen Threads.
Kontextwechsel sind nicht billig. Sie möchten nicht länger als nötig zwischen den Threads wechseln.
Ressourcenverbrauch erhöhen
Ein Thread benötigt einige Ressourcen des Computers, um ausgeführt zu werden. Darüber hinaus benötigt ein Thread der CPU etwas Speicher, um seinen lokalen Stack zu verwalten. Einige Ressourcen können auch innerhalb des Betriebssystemverwaltungsthreads belegt sein. Versuchen Sie, ein Programm mit 100 Threads zu erstellen, das nur wartet, und sehen Sie, wie viel Speicher es beim Ausführen verbraucht.
Das Obige ist der Inhalt der Java-Multithreading-Kosten. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.php.cn)!