Теория распараллеливания и синхронизация. Демьянович Ю.К - 103 стр.

UptoLike

§11 Некоторые возможности библиотеки
Pthreads
Для написания переносимых многопоточных приложений в сере-
дине 1990-х годов группой под эгидой организации POSIX (Portable
Operating System Interface интерфейс переносимой операционной
системы) была разработана библиотека Pthreads. Она распростра-
няется с различными операционными системами частности, с
операционной системой Unix).
Опишем здесь базовый набор функций этой библиотеки.
При использовании языка C прежде всего необходимо:
1) подключить стандартный заголовочный файл
# include < pthread.h >
2) сделать объявления
pthread_attr_t tathr; / атрибуты потока /
pthread_t tid; / дескриптор потока /
3) инициализировать атрибуты с помощью функций
pthread_attr_init(&tattr);
pthread_attr_setscope(&tattr, PTHREAD_SCOPY_SYSTEM);
4) создать поток, установив предварительно его начальные ат-
рибуты (см. ниже).
Атрибуты потока включают: 1) размер его стека, 2) его при о-
ритет, 3) область планирования (локальная или глобальная).
Обычно достаточно значений атрибутов, установленных по
умолчанию (исключением является область планирования: здесь
значение следует указывать явно).
Если поток должен конкурировать в борьбе за процес сор со
всеми потоками, а не только с родительским, то следует произвести
вызов функции pthread_attr_setscope (см. выше).
Новый поток создается вызовом
pthresd_create(&tid, &tattr, start_func, arg);
Первый аргумент адрес дескриптора потока, второй аргумент
адрес дескриптора атрибутов потока. Поток начинает свою рабо-
ту с вызова функции start_func с одним аргументом arg. Поток
104