wie die Prozess- und Thread-Leistung wird je nach timslice variieren. (Wie viel Zeit wird ungefähr dauern, um auszuführen). In dieser Situation werden wir Threads anstelle von Prozess verwenden.Prozess und Threads
Antwort
Ich möchte Ihre Frage wie folgt umformulieren: In welchen Fällen sollte eine einzelne Anwendung mehrere Threads, und in welchen Fällen sollte es stattdessen mehrere Prozesse verwenden?
In dieser Frage spielen Zeitscheiben keine Rolle: Betriebssysteme planen heute nur Threads ein und behandeln einen "einfachen" Prozess mit einem einzigen Thread.
Was Performance-mäßig macht, ist der Erstellungsaufwand: Das Erstellen eines Prozesses ist normalerweise teurer als das Erstellen eines Threads. Multi-processing-Anwendungen vermeiden diese Kosten, indem sie Pools verwenden, d. H. Sie erstellen neue Prozesse nur selten, aber sie können sie wiederverwenden, wenn sie mit einer Aufgabe fertig sind. Da die Erstellung von Threads immer noch teuer ist, machen Benutzer das Gleiche mit Threads.
Was auch wichtig ist, ist Kommunikationsaufwand: in Threads können Sie leicht Speicher teilen; In Prozessen kopieren Sie normalerweise Dinge (z. B. mithilfe einer Pipe). Es gibt Möglichkeiten, Speicher auch über Prozesse hinweg zu teilen, aber diese sind ziemlich schwierig zu verwenden.
Also im Allgemeinen sollten Threads schneller als Prozesse sein. Warum nutzen Menschen noch Prozesse? Weil sie das einfachere Programmiermodell sind. Aufgrund des gemeinsamen Speichers in Threads ist es sehr einfach, Fehler zu machen, und Bibliotheken/APIs, die nicht thread-sicher sind. Ein Mangel an Fadensicherheit kann durch den Einsatz von Verfahren umgangen werden.
- 1. Prozess vs Threads
- 2. Unterscheiden zwischen Java-Threads und OS-Threads?
- 3. Signalisieren aller Threads in einem Prozess
- 4. OS X Java maximale Threads pro Prozess
- 5. Zombie-Prozess, obwohl Threads noch laufen
- 6. Anwendungsdomänen und Threads
- 7. Verwenden von Threads und ProcessBuilder
- 8. Sind Servlet-Threads und Connector-Threads gleich?
- 9. POSIX-Threads und Beenden eines Threads
- 10. Das EBP eines Threads in einem anderen Prozess erhalten
- 11. C# Prozess verweilt, nachdem alle Threads beendet wurden
- 12. Wie teilen Sie einen großen Prozess zwischen Threads
- 13. Was sind die Unterschiede und Beziehungen zwischen "Prozess", "Threads", "Task" und "Jobs" in Linux?
- 14. Wie führe ich einen Prozess nach Abschluss von Threads weiter?
- 15. Kommunikation mit niedriger Latenz zwischen Threads im selben Prozess
- 16. Warum spuckt Multiprozess Multi Threads in jedem Prozess?
- 17. Anzahl der Threads pro Worker-Prozess erhöhen IIS
- 18. Linux: erkennen zur Laufzeit, dass ein Prozess mehrere Threads haben
- 19. Wie können Sie Threads im selben Prozess auflisten?
- 20. WCF-Komet und Threads
- 21. htop und OpenMP Threads
- 22. Perl Threads und Semaphore
- 23. Cocoa, Windows und Threads?
- 24. Java und 2 Threads
- 25. Sockets und Threads
- 26. Bindung, Threads und Winforms
- 27. Erstellen und zerstören Threads
- 28. HTTP-Anfragen und Threads
- 29. Blöcke und Threads
- 30. Sitzung und Threads
Theres kein Prozess ohne Threads mein Freund. Ein Prozess ist eine Gruppe von Threads mit mindestens einem Thread, dessen Hauptknoten. – Havenard
@madhu - Bitte formulieren Sie die Frage neu - sieht so aus, als würden Sie nach den relativen Vorteilen der Verwendung mehrerer Prozesse im Vergleich zur Verwendung mehrerer Threads fragen, aber Sie sollten die Frage fokussieren. –