pthread schlafen legen?
-
hi wie mache ich das?
habe die funktion usleep() gefunden die das angeblich machen soll aber die gehört nicht zur pthread lib...?
-
usleep() ist in der libc enthalten ("#include <unistd.h>") und hält den Prozess für die angegebene Zeit in Mikrosekunden an. sleep() macht das Gleiche in Sekunden.
-
den prozess oder den thread?
ich will nur den thread anhalten!
-
naja wenn du usleep() im code teil des threads aufrufst wird natürlich nur
der gestoppt.
-
benutz lieber nanosleep, da usleep keine POSIX Funktion ist!
-
ok cool danke. Habe noch eine Frage zu Threads:
Ich möchte Threads dynamisch zu laufzeit erzeugen, bzw der User soll eingeben wieviele Threads geststartet werden sollen. Wie mache ich das, denn alle Threads müssen ja mit unterschiedlichen Namen declariert und gestartet werden.
das geht ja nicht:
for(i=...){
pthread_t Thread;pthread_create(&Thread, NULL, Thread_function, NULL);
}
-
oder kann ich einfach einen vector von Threads anlegen? *heck* das müsste gehen, oder?
-
jup, sollte gehen.
-
Danke! ok dann noch eine Frage:
ich bräuchte eine Barriere, (alle Threads müssen an einer Stelle syncroniesiert werden), diese gibt es allerdings bei den Pthreads nicht.Der langsamste müsste irgendwie ein cond_broadcast schicken wenn er fertig ist nur woher weiss dieser das er der letzte ist..?