Мобильное программирование приложений реального времени в стандарте POSIX


Опрос и изменение атрибутов потоков управления


Следуя классическому принципу "познай самого себя", описание функций, обслуживающих потоки управления, мы начнем с функции pthread_self(), возвращающей в качестве результата идентификатор вызвавшего ее потока (см. листинг 1.1).

#include <pthread.h> pthread_t pthread_self (void);

Листинг 1.1. Описание функции pthread_self(). (html, txt)

Выше мы отмечали, что тип pthread_t трактуется стандартом POSIX-2001 как абстрактный. На уровне языка C он может быть представлен, например, структурой. Для работы со значениями типа pthread_t предусмотрены два метода: присваивание и сравнение на равенство, реализуемое функцией pthread_equal() (см. листинг 1.2).

#include <pthread.h> int pthread_equal (pthread_t t1, pthread_t t2);

Листинг 1.2. Описание функции pthread_equal(). (html, txt)

Если значения аргументов t1 и t2 равны, результат функции pthread_equal() отличен от нуля.

Атрибуты потоков управления, используемые при создании последних, сгруппированы в упоминавшиеся выше атрибутные объекты. Для инициализации и разрушения атрибутных объектов служат функции pthread_attr_init() и pthread_attr_destroy() (см. листинг 1.3).

#include <pthread.h>

int pthread_attr_init ( pthread_attr_t *attr);

int pthread_attr_destroy ( pthread_attr_t *attr);

Листинг 1.3. Описание функций pthread_attr_init() и pthread_attr_destroy(). (html, txt)

Функция pthread_attr_init() инициализирует атрибутный объект, заданный указателем attr, подразумеваемыми значениями для всех индивидуальных атрибутов потоков управления, предусмотренных реализацией.

Функция pthread_attr_destroy() разрушает заданный атрибутный объект. Впрочем, "разрушает", возможно, слишком сильный термин. Быть может, реализация просто присваивает значениям атрибутов недопустимые значения. Во всяком случае, разрушенный атрибутный объект в дальнейшем может быть вновь инициализирован.

Структура атрибутных объектов скрыта от приложений, но сам набор стандартизованных атрибутов выглядит вполне естественно.


Начало  Назад  Вперед



Книжный магазин