Threads für Kuchen-backen-Prozess

oraclin25

Erfahrenes Mitglied
Hallo zusammen,

angenommen, ich habe einen Prozess, der Kuchen backt. Folgende Aktivitäten sollen dazu ausgeführt werden:
1. Teig in den Backofen hineinschieben
2. Nach 30 Minuten Kuchen aus Backofen rausholen
3. Kuchenplatte aus dem Schrank holen
4. Kuchen auf die Platte legen

Ohne Threads in dem Prozess hat der Prozessor nach der Aktivität 2 für 30 Minuten lang nichts zu tun. Daher würde ich gerne Aktivität 3 als Thread in dem Prozess ausführen lassen.

Meine Frage ist:
Wenn ich für die Aktivität 3 einen Thread erzeuge, wie viel Prozessor-Zeit wird für diese Aktivität eigentlich "per default" genommen? Widmet der Prozessor eigentlich voll der Aktivität 3 bis sie fertig ausgeführt ist oder wechselt er zwischenzeitlich immer zu dem Prozess?

Vielen Dank.

Viele Grüße aus Rheinland,

Eure Ratna
 
Hi

Ich vrsteh die Frage nicht, sowohl technisch als auch sonst.

Wenn eine Person einen Kuchen in den Ofen tut muss sie mit dem Rausholen
(und auf-die-Platte-legen) warten, bis fertig gebacken ist. Wenn eine zweite Person
da ist gehts deswegen aber auch nicht schnneller, man muss trotzdem 30min warten.

Was hat die Wartezeit mit der verbrauchten Prozessorleistung zu tun?

...

Bei mehreren laufenden Threads hängt es vom Betriebssystem ab, wie viel jeder an
Leistung bekommt. Implementierungen gibts verschiedene, aber im Allgemeinen ist
das Ziel, jedem Thread ca. gleich viel Resourcen zu geben, aber nur, wenn er auch
was zu tun hat (also kein Sleep oder so).
Dazu sind oft noch Prioritätseinstellungen möglich, die höher gereihten bekommen
eben mehr (im Normalfall bekommt man aber immer die selbe Standardpriorität, falls
man sie nicht absichtlich umstellt).
Und bei mehreren Prozessoren/Kernen/etc. können entsprechend
viele Threads auch wirklich gleichzeitig laufen...
 
Hallo sheel,

die Konstellation wo nur der Prozess gleichzeitig der Thread ist(bzw. der Prozess hat lediglich einen einzigen Thread):
nachdem der Teig sich im Backofen befindet, wartet der Koch ja eigentlich erstmal darauf, dass aus dem Teig ein Kuchen wird. Erst holt er die Kuchenplatte.

Ich dachte, ich mache die Konstellation:
während des Aufbackens kann der Koch ja eigentlich schon mal die Kuchenplatte aus dem Schrank holen.
Dazu erstelle ich einen Thread, der lediglich das Rausholen von Kuchenplatten tut.

Meine eigentliche Frage ist:
wird der von mir erzeugte Thread immer bis zum Ende vom Prozessor ausgeführt oder wechselt der Prozessor währenddessen immer zu anderer Aktivität(in diesem Fall zur Aktivität des Wartens)?

Vielen Dank,

Eure Ratna
 
Ich habe genau die passende Programmiersprache für dich! Chef, damit ist dein Programm das Rezept zum Kochen und Backen! :D

Spaß beiseite, was ist eigentlich das reale Anwendungsszenario bei dir?
 
Hallo ComFreek und sheel,

vielen Dank für Eure Hilfe. Mein konkretes Anwendungsszenario:
mit Java greife ich eine Datenbank übers Netz und lasse von dem Netzserver Datensätze lesen. Das kann etwas dauern, daher dachte ich, ich kann während der Netzserver diese Datensätze liest, kann ich meinen eigenen Prozessor schon mal was anderes tun.

Mal eine ganz andere Frage:
ich habe gelernt, dass in einer Methode von Stateless-Bean mit vorhander Transaktion, entweder mit einem Commit oder mit einem Rollback endet. Falls es ein Rollback ist, werden alle Anweisungen zurückgerolt. Meine Frage ist:
ich verstehe den Statement "alle Anweisungen werden zurückgerolt" nicht wirklich. Die Aussage ist mir sehr abstrakt. Denn:
Wenn in der Methode so eine Anweisung gibt: System.out.println("Hallo Ratna"); Wie soll dies den zurückgerollt werden?
Bei den meisten Beispielen im Internet handelt es sich immer um Datenbank-Operationen, sodass der Begriff Zurückrollen leicht vorzustellen ist.

Was ist, wenn in der Methode einfach ein Aufruf auf eine weitere Methode von einem anderen Bean stattfindet. Wie soll der Aufruf denn zurückgerollt werden?

Oder ganz simple: was ist wenn in der Methode einfach ein new-Operator existiert, was passiert dann mit dieser Instanz wenn die Methode warum auch immer zurückgerollt wird.

Vielen lieben Dank. Hoffentlich versteht Ihr wie ich das meine.

Viele Grüße aus Rheinland,

Eure Ratna
 

Neue Beiträge

Zurück