Forum: PC Hard- und Software Multithreading und Multitasking


von max (Gast)


Lesenswert?

Hallo zusammen,

ich verstehe nicht so ganz den Unterschied von Multitasking zu 
Multithreading.
Obwohl ich schon viele Seiten im Internet zu diesem Thema durchgelesen 
habe, stoße ich immer wieder auf die gleiche Frage: was sind Threads?

Also ich versuch mal kurz mein Problem zu beschreiben:
Multitasking: Ich teile mehrer Prozesse in Teilen auf, welchen ich eine 
Zeit gebe, dann bekommt ein andere Prozess meine CPU (wirklich nur kurz 
erklärt)

Bedeutet: Word und Excel laufen "gleichzeitig". Word daf mal kurz was 
machen, dann Excel usw.. soweit sogut.

Was aber zum Teufen sind diese Thraeds innerhalb dierser Teilprozesse.

Zurück zu meinem Beispiel: Wenn also mal wiede Word dran ist für eine 
bestimmte Zeit (also mein Teilprozess), in was wird dann dieser noch mal 
geteilet????? Weche Fäden???

Habt ihr mal bitte ein echtes BEispiel dafür, ohne das Wot Threads zu 
benutzen.

Wir könneten es ja so versuchen:
Herr Müller und FRau Schmitt wollen beide Geld an einem Schalter 
einzahlen, und das gleichzeitig.
Also der Mann an der KAsse nimmt erst einmal von Müller 1 Euro, dann 
wendet er sich Frau Schmitt zu, nimmt 5 Euro, dann wiede herrn Müller, 
der nennt schon mal die ersten 2 Zahlen seine Kontonummer, dann wieder 
frau schmitt usw... das ist multitasking mit einem Prozessor: wo finde 
ich hier Multithreadign???????????

Vielen Dank im voraus.

Grüße

Max

von Jorge (Gast)


Lesenswert?

Es gibt nur einen formalen Unterschied. Threads gehören zum Prozess, 
Prozesse sind dem Benutzer und einem Programm/Dienst zugehörig.

von Wolfgang Mües (Gast)


Lesenswert?

Multitasking bezeichnet allgemein die Fähigkeit, mehrere Dinge quasi 
gleichzeitig zu tun.

Zur Beschreibung dieser einzelnen Aufgaben gibt es zwei gebräuchliche 
Ausdrücke: Prozess und Thread.

Inzwischen hat es sich etabliert, einen Prozess als eigenständig und 
unabhängig laufende Aufgabe zu sehen. Ein Thread ist im Unterschied dazu 
sehr eng mit anderen Threads verbunden, um seine Aufgabe zu realisieren. 
Dazu operiert er in der Regel im selben Adressraum wie seine Partner. 
Prozesse hingegen haben in der Regel voneinander getrennte Adressräume.

Weil dieser Unterschied nicht sehr groß ist, wurde z.B. in Linux die 
Behandlung eines Prozesses so modifiziert, dass man beim Erzeugen eines 
Prozesses angeben kann, welche Eigenschaften gemeinsam genutzt werden 
und welche nicht. Dadurch gibt es für den Kernel nur ein einfaches 
Modell zur Verwaltung. Andere Betriebssysteme haben jeweils eigene 
Implementierungen für Prozesse und Threads (was die Sache nicht gerade 
einfacher macht).

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.