POSIX Threads/Przykładowe programy
Kompilacja
edytujWszystkie programy zostały skompilowane kompilatorem gcc i uruchomione na Linuxie 2.6, część bez problemów skompilowała się i uruchomiła w Cygwinie.
Kompilator był wywoływany z następującymi opcjami:
gcc -Wall -pedantic -std=c99 -lpthreads program.c -o przyklad
lub
gcc -Wall -pedantic -std=c99 -pthread program.c -o przyklad
Niektóre przykłady (wirujące blokady, bariery) muszą być linkowane z librt, czyli konieczna jest opcja -lrt.
Aby skompilować część z nich trzeba ustawić odpowiednie definicje preprocesora, w szczególności _POSIX_C_SOURCE na odpowiednią wartość - w przykładach jest to 200809L, dając dostęp do funkcji z nowszych rewizji standardu POSIX.
Wykaz przykładów
edytujodnośnik | wykorzystany w rozdziale | lista funkcji pthreads |
Program 1 | Tworzenie wątku |
|
Program 2 | Przekazywanie argumentów |
|
Program 3 | Kończenie wątku |
|
Program 4 | Atrybuty wątku |
|
Program 5 | Stos funkcji finalizujących (cleanup) |
|
Program 6 | Funkcje wywoływane jednokrotnie |
|
Program 7 | Przerywanie wątków |
|
Program 8 | Typy mutexów |
|
Program 9 | Zmienne warunkowe |
|
Program 10 | Lokalne dane wątku |
|
Program 11 | Bariery |
|
Program 12 | Rozmiar i adres stosu |
|
Program 13 | UNIX-owe sygnały |
|
Program 14 | Czas procesora zużyty przez wątek |
|
Program 15 | Pozyskiwanie i zwolnienie blokady |
|
Program 16 | Blokady zapis/odczyt |
|
Program 17 | Synchronizacja między wątkami różnych procesów |
|
Program 18 | Pthreads i forkowanie |
|
Program 19 | Wybór algorytmu szeregowania i ustawienie jego parametrów |
|