002
18.08.2006, 18:14 Uhr
FloSoft
Medialer Over-Flow (Administrator)
|
wichtig ist aber auch sog. reentrant-funktionen zu benutzen. Beispiel: strdup, readdir, strtok benutzen internen speicher, wenn du diese in 2 threads gleichzeitig benutzt, kracht dir die anwendung um die ohren bzw macht nicht was sie soll das sich die puffer gegenseitig überschreiben, darum musst du halt z.b die _r-funktionen der jeweiligen benutzen. Das gleiche gilt natürlich für deine eigenen Funktionen: Zugriff auf globale Variablen muss serialisiert werden (gegenseitiger ausschluss, evtl über einen mutex oder meist reicht einfach nur ein lock aus) oder funktionen welche statische variablen enthalten, sowas möglichst vermeiden und lieber aus dem thread selbst den speicher übergeben.
Ist ein komplexes Thema, lernt man an der Uni -- class God : public ChuckNorris { }; |