PThread - Czy wątek wciąż działa?, Mutex

0

Hejka.
Czy jest jakaś funkcja, która sprawdzi, czy podany wątek wciąż działa?
Nie chodzi mi tutaj o pthread_join() - blokuje działanie do zakończenia wątku.

Czy do odczytu zmiennej globalnej w wielu wątkach również muszę używać mutexów, czy tylko gdybym zapisywał?

0

Jaki system i jaka platforma?

Microsoft napisał(a)

Simple reads and writes to properly-aligned 32-bit variables are atomic operations. [...] Simple reads and writes to properly aligned 64-bit variables are atomic on 64-bit Windows. Reads and writes to 64-bit values are not guaranteed to be atomic on 32-bit Windows. Reads and writes to variables of other sizes are not guaranteed to be atomic on any platform.

http://msdn.microsoft.com/en-us/library/ms684122(v=vs.85).aspx

Można się spodziewać, że zasady te obowiązują też w innych systemach operacyjnych na x86.

0

Czy do odczytu zmiennej globalnej w wielu wątkach również muszę używać mutexów, czy tylko gdybym zapisywał?

Jeśli zmienna jest tylko do odczytu, nie musisz. Chyba że odczyt powoduje zmianę stanu tej zmiennej (np. licznik referencji), wtedy musisz synchronizować dostęp.

0

Tak chodzi o Linuksa.
Czytam: http://www.yolinux.com/TUTORIALS/LinuxTutorialPosixThreads.html i niestety nie widzę funkcji służącej do sprawdzenia, czy wątek wciąż działa, dlatego pytam.

0

Jeśli masz u siebie pthread_extendedjoin_np, to użyj tej funkcji.

1 użytkowników online, w tym zalogowanych: 0, gości: 1