2017-09-07 2 views
-1

Ich bin ein bisschen verwirrt. Multithreading beinhaltet parallele Verarbeitung. Warum können wir nicht mehrere Cores verwenden, um verschiedene Threads auszuführen? Ich fand diese Aussage in diesem Link- https://www.tutorialspoint.com/operating_system/os_multi_threading.htm Bitte erklären Sie die Aussage "Multithread-Anwendung kann Multiprozessor-Nutzung nicht nutzen."Stimmt es, dass Multithreading Multiprocessing nicht nutzen kann? Wenn ja warum?

Vielen Dank im Voraus.

Antwort

1

Multiprocessing in diesem Satz ist über mehrere Prozesse, nicht Prozessoren.

Threads, die zu demselben Prozess gehören, werden nicht isoliert. Wenn beispielsweise ein Thread abstürzt, stürzt das ganze Programm ab.

UPD: Entschuldigung, ich habe den Artikel erneut gelesen und festgestellt, dass meine erste Antwort falsch war. Der Autor scheint Software-emulierte Threads zu betrachten, die ohne Parallelisierung von derselben Ausführungseinheit ausgeführt werden. Sie finden eine solche Threading-Library-Implementierung in der Praxis kaum. Die meisten Threading-Bibliotheken werden von Kernel-Threads unterstützt.

+0

Also kann ich sagen, dass mehrere Threads aus einem Prozess auf mehreren Kernen ausgeführt werden können? –

+0

Normalerweise, ja, Sie können –

+0

Es gibt einige Eunuchs-Varianten, wo Threads nur auf einem einzigen Kern ausgeführt werden können. Sie sind jedoch zunehmend Ausnahmefälle. – user3344003

Verwandte Themen