Thread Management
-
hätte es mit bool schon versucht aber da gibts sicher ne bessere lösung
-
Vor allem ist ein einfacher bool problematisch. http://en.wikipedia.org/wiki/Race_condition#Computing
-
weis jm ne bessere lösung?
-
spike1993 schrieb:
weis jm ne bessere lösung?
Wie wärs wenn du die ganzen Links auch mal durchliest, ansonsten frag ich mich schon für was ich hier eigentlich poste. Ich geb dir noch ein paar Stichwörter: Critical Section, Atomic Operation, Mutex, Condition Variable. Und das sind jetzt nicht irgendwelche leeren Buzzwords die ich mir hier einfach mal zum Spaß aus den Fingern sauge. Wenn du dich mit Multithreading beschäftigen willst dann sind das essentielle Konzepte.
Noch ein paar Links die interessant sind:
http://de.wikipedia.org/wiki/Interprozesskommunikation
http://de.wikipedia.org/wiki/Race_Condition
http://de.wikipedia.org/wiki/Philosophenproblem
http://de.wikipedia.org/wiki/Erzeuger-Verbraucher-Problem
-
ich kriebs einfach nicht hin mit was fürn einer funktion api muss ich den handle vom thread den beenden damit auch die threads beendet werden die aus dem 1. gestartet werden.
-
Wie oft soll ichs noch sagen: Der einzige richtige Weg um einen Thread zu beenden ist dass der Thread sich selbst beendet indem er returned. Wenn du willst dass alle diese Threads beenden dann musst du dafür sorgen dass diese Threads sich beenden indem du diese Threads alle entsprechend programmierst. period.
-
hab ich auch gemacht und zwar überprüft das thread immer ob die threadid in einem anderen string enthalten ist (.find) wenn er enthalten ist dann return 2 aber es beendet sich immer nur 1 oder 2 von 3?!
-
Komisches System aber naja, wenns nicht funktioniert dann weil du was falsch gemacht hast. Ohne nähere Informationen kann man da leider nicht mehr dazu sagen.
-
ich geh nochmal alles theoretisch/deguge durch
Edit:
string KillTasks;
KillTasks += "5";
while(KillTasks.find(TaskID) == string::npos){schleife...}
-
jetzt funktionierts hat irg wie mit nem anderen thread was zu tun gehabt das beendet wurde. ka warum
-
314159265358979 schrieb:
Hm, ok, und wenn ich das Verhalten nicht haben will?
Boo-hoo
-
hab jetzt n anderes problem bekomme immer einen stack overflow in chkstk.asm - C stack checking routine und hab ka warum weis jm wie der entsteht?
-
- nothing -
-
Ich denke du musst schon ein wenig mehr Code herzeigen, plus folgende Infos:
* wie viele Threads erzeugst du?
* welchen Thread zerreisst es in chkstk.asm?
* wie sieht der Callstack zu dem Zeitpunkt aus?
* wo lebt die ThreadArgs struktur?
...
-
- nothing -
-
- nothing -
-
Ich fürchte dass die Infos lange nicht ausreichen.
Also nochmal:
* welchen Thread zerreisst es in chkstk.asm?
* wie sieht der Callstack zu dem Zeitpunkt aus?
-
also das program kack bei den zuweisungen der ThreadArgs ab und danach kommt folgendes:
-
Ich kann noch nicht mal laufen, aber will jetzt mit 100 Kunstflugzeugen gleichzeitig fliegen und dabei noch Ballet tanzen.

-
blöde kommentare helfen mir auch nicht, jeder fängt mal klein an oder?