Lekce 15 - POSIX a Windows Threading library v C++
V minulé lekci, Knihovna standardu C, jsme se podívali na jinou knihovnu pro C a C++,
která dovoluje pracovat s vlákny. Konkrétně na knihovnu threads
ze standardu C.
V dnešní lekci se podíváme na další knihovny pro práci s vlákny, se kterými se můžeme setkat. Jedná se o nativní knihovny pro UNIX-like systémy (POSIX thread) a pro Windows (Windows threading).
Knihovna
threads
ze standardu C z velké části kopíruje právě
rozhraní POSIX vláken. Z hlediska programátora používajícího tyto
knihovny se vlastně jedná jen o přejmenování struktur a funkcí
(popřípadě přidání volitelných parametrů). Z tohoto důvodu probereme
knihovny pouze stručně (nemá smysl kopírovat text z předchozí lekce) a
poukážeme si primárně na změny oproti C standardu.
POSIX thread
POSIX thread je knihovna pro UNIX systémy, definovaná v hlavičkovém
souboru pthread.h
. Dokumentace k ní je k dispozici na stránkách
opengroup,
popřípadě jako manual
page.
Vlákna
Knihovna obsahuje funkce pro práci s vlákny jako:
pthread_create()
,pthread_yield()
apthread_join()
.
Pozor, nemá funkci pthread_sleep()
, ale
nanosleep()
, která funguje stejně jako thrd_sleep()
v C11.
Na rozdíl od C11 má spuštěná funkce (tj. funkce předaná jako parametr při vytváření vlákna) jinou definici a
...konec náhledu článku...
Pokračuj dál
Došel jsi až sem a to je super! Věříme, že ti první lekce ukázaly něco nového a užitečného.
Chceš v kurzu pokračovat? Přejdi do prémiové sekce.
Koupit tento kurz
Obsah článku spadá pod licenci Premium, koupí článku souhlasíš se smluvními podmínkami.
- Neomezený a trvalý přístup k jednotlivým lekcím.
- Kvalitní znalosti v oblasti IT.
- Dovednosti, které ti pomohou získat vysněnou a dobře placenou práci.
Popis článku
Požadovaný článek má následující obsah:
V C++ tutoriálu si představíme nativní knihovny POSIX threads sloužící pro UNIX-like systémy a Windows Threading pro Windows.
Kredity získáš, když podpoříš naši síť. To můžeš udělat buď zasláním symbolické částky na podporu provozu nebo přidáním obsahu na síť.