Registriert seit: 13. Dez 2003
Ort: Berlin
1.756 Beiträge
|
Re: Starten eines Threads
1. Mai 2006, 10:43
Hi,
es ist vollkommen ok (gewollt, super, etc) dass ein Thread jedesmal neu erstellt wird, wenn man ihn ausführen möchte. Darin liegt eigentlich gerade der Sinn der Nebenläufigkeit, würde noch ein Thread existieren, so kann der gerade seine Arbeit zu ende machen während dein neu erzeugter Thread mit anderen Daten arbeitet.
Würdest du diese Möglichkeit nicht haben, hättest du echt ein riesiges Problem zu skalieren. Wenn du ein Multiprozessorsystem mal wirklich auslasten willst, wirst du sicherlich mehr als einen Thread (häufig mehrere Eingaben aber gleiche Operation) starten. Dass du dazu nicht ein SIMD brauchst, sondern dass auch auf einem normalen x86 starten könntest dürfte klar sein.
Ist also an sich schon ganz richtig so. Zudem kannst du es natürlich um gehen, dein Thread könnte eine boolsche Variable besitzen, die er prüft bevor er seine Anweisungen wiederholt (while schleife). Bevor er dann fertig ist, setzt er diese Variable dann immer false und du legst ihn schlafen, zum Aufwecken setzt du diese Variable true und benutzt resume. Damit er nicht beendet wird, weil die Variable gerade false ist noch eine endlosschleife rum.
Und ob das dann schöner und sauberer ist als den jedes mal neu zu erzeugen...
Gruß Der Unwissende
|