Was ist der Unterschied zwischen Threading und Parallelität?
Welcher hat einen Vorteil gegenüber dem anderen?
Was ist der Unterschied zwischen Threading und Parallelität?
Welcher hat einen Vorteil gegenüber dem anderen?
Hier ist die beste Antwort, um alle Zweifel in Bezug auf Parallelität und Threading auszuräumen.
Threads sind ein Software-Konstrukt. Ich kann so viele pthreads starten, wie ich will, selbst auf einem alten Einkernprozessor. Multithreading ist also nicht unbedingt parallel: Es ist nur parallel, wenn die Hardware es unterstützt. Wenn Sie also mehrere Kerne und/oder Hyperthreading haben, wird Ihr Multithreading parallel. Und das ist heutzutage tatsächlich die meiste Zeit der Fall.
Bei der Gleichzeitigkeit geht es um Aktivitäten, die keine klare zeitliche Ordnung haben. Auch hier gilt: Wenn die Hardware es unterstützt, können sie parallel ausgeführt werden, wenn nicht, dann nicht.
Traditionell ist Multi-Threading also fast gleichbedeutend mit Gleichzeitigkeit. Und beide werden nur dann parallel, wenn die Hardware dies unterstützt. Selbst dann können Sie viel mehr Threads starten, als die Hardware unterstützt, und es bleibt bei der Gleichzeitigkeit.
Threading ist die Parallelität des armen Mannes.
EDIT: Um genauer zu sein:
Threading hat nichts mit Parallelität zu tun und umgekehrt. Beim Threading geht es darum, das Gefühl zu vermitteln, dass einige Prozesse parallel laufen. Das macht die Prozesse jedoch nicht zu vollständig ALLE ihre Aktionen insgesamt noch schneller.
Für diejenigen, die eine ausführliche Diskussion wünschen - lassen Sie uns beginnen mit prodata.lt/DE/Programmierung/OPU_Rechenmodell.pdf .
Wie definieren Sie "Parallelität"? Multithreading ist eine konkrete Umsetzung des Konzepts der parallelen Programmausführung.
Der von RichardOD verlinkte Artikel scheint sich hauptsächlich damit zu befassen, ob Threads auf einem konkreten Rechner tatsächlich parallel ausgeführt werden.
In Ihrer Frage scheinen Sie jedoch Multithreading und Parallelität als Gegensätze zu sehen. Meinen Sie vielleicht Programme, die mehrere Prozesse und nicht mehrere Threads? Wenn ja, sind die Unterschiede:
Wenn wir denken CPU als Unternehmen und Threads als seine Mitarbeiter dann hilft es uns, Threading und Parallelität leichter zu verstehen.
So wie ein Unternehmen viele Arbeiter hat, hat auch die CPU viele Threads.
Außerdem kann es mehr als ein Unternehmen und somit auch mehr als eine CPU geben.
Wenn also Arbeiter (Threads) in einem Unternehmen (CPU) arbeiten, nennt man das Einfädeln .
Und wenn zwei oder mehr Unternehmen (CPU) unabhängig voneinander oder gemeinsam arbeiten, nennt man das Parallelität .
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.
10 Stimmen
Was ist der Unterschied zwischen Autos und Autofahren? Threading ist die Verwendung von Threads, Parallelität ist, wenn etwas parallel läuft. Die häufigste Art, Dinge parallel laufen zu lassen, ist die Verwendung von Threads.