Multithreading und Multiprocessing sind Begriffe, mit der Geschwindigkeit, mit der Computer -Programme ausführen verbunden. Beides sind Methoden, die eine Ehe von Programmier-Kenntnisse und Hardware-Entwicklung benötigen , um richtig genutzt werden. Beide Begriffe sind nicht immer ausschließen , sie sind in Tandem verwendet, um die Effizienz eines Computers zu erhöhen . Hardware-Unterschiede
Multiprocessing erfordert , wie der Name schon sagt, mehrere physische Prozessorkerne . Zuvor kamen mehrere Prozessor- Mainboards mit mehreren separaten Slots zur Eingabe Central Processing Units (CPU). Heute ermöglichen neue Technologien von Herstellern wie AMD und Intel für mehrere Prozessorkerne in einer einzigen CPU gebaut werden " Chip ". Multithreading ist nicht ganz ohne eigene Hardware, sondern lediglich , dass die Unterstützung Mainboards Multithreading -Code Anweisungen. Die meisten modernen Mainboards verfügen über diese Fähigkeit.
Individual Programm Versus Betriebssystem
Programmierer verwenden Multithreading Tool-Sets , damit Programme , mehrere Aufgaben parallel auszuführen . Diese " Pipeline "-Verarbeitung geben die Illusion von zwei Funktionen gleichzeitig auftreten , aber eigentlich nutzt die hohe Menge an Rechenleistung und effiziente Algorithmen , um schnell abwechseln zwischen einer Funktion und einem anderen. Als solche , hängt die Verwendung von Multithreading auf dem Code des Programms selbst .
Multiprocessing hingegen hat einen transparenteren Zugang zu der Macht der Verarbeitung mehrere Streams. Ein individuelles Programm Zugang Multiprocessing -Funktionen unter der Schirmherrschaft des Betriebssystems , wie Apples Mac OS oder Microsoft Windows . Als solche müssen Programme nicht besonders mit Multithreading -Befehle optimiert werden , um die Leistung der parallelen Verarbeitung zu nutzen. Multithreading kann tatsächlich in Verbindung mit Multiprocessing verwendet werden.
Unabhängige gegen Pipeline-Verarbeitung
Multiprocessing und Multithreading unterscheiden sich grundlegend in wie Programmanweisungen verarbeitet werden. In Multiprocessing , können zwei oder mehr Befehle gleichzeitig ausgeführt werden , durch einen Prozess bezeichnet als " parallele Verarbeitung . " Multithreading , öffnet sich jedoch einzelne Pipelines für jeden Befehl und vertreibt Rechenleistung zwischen den Pipelines in regelmäßigen Abständen.
Dieser Unterschied ist weitgehend unauffällig , wenn die Prozessor-Last gering ist. Allerdings wird gleichzeitig Prozessor -intensive Anleitung zu stottern in einem reinen Multithreading -Umgebung zu beginnen . Die gleichen Funktionen werden mehr immun gegen solche Effekte in einem Multiprocessing -Umgebung.
Error Correction
Multithreading eröffnet getrennten Strömen in einem einzigen Prozess . Die Ströme aussehen einzelne Prozesse, sondern nutzen einen gemeinsamen Adressraum auf den Arbeitsspeicher des Computers innerhalb des gleichen Prozesses . Multiprocessing , öffnet sich jedoch mehrere Verfahren , um die gleichzeitige Funktionen auszuführen und diese Prozesse erhalten jeweils ihre eigenen Paket von Speicher . Wenn ein einzelner Prozess in einem Multiprocessing -Umgebung fehlschlägt, werden alle anderen Prozesse verschont , aber Fehler in einer einzelnen " Fäden " nicht von anderen Threads isoliert und schließlich bringen den gesamten Prozess . Das Ergebnis ist das Potenzial für größere Ausfälle unter Multithreading Bedingungen .