Флаги (булевы характеристики)
Параметры стека
Параметры диспетчеризации
Список выглядит довольно большим (18 функций), но в действительности нас будет заботить применение только примерно половины функций из этого списка, потому что все эти они сгруппированы по парам «get» — «set», т.е. в каждой паре есть функция как получения параметров (get), так и их установки (set) — за исключением функций
Прежде чем мы исследуем назначения атрибутов, следует отметить одно обстоятельство. Вы обязаны вызвать
Перед использованием атрибутной записи для ее инициализации следует вызвать функцию
...
pthread_attr_t attr;
...
pthread_attr_init(&attr);
Вы можете также вызывать
В приведенных ниже описаниях значения по умолчанию помечены комментарием «(по умолчанию)».
Три функции —
Для создания «синхронизирующего» потока (это значит, что с завершением этого потока можно синхронизировать другой поток при помощи функции
pthread_attr_setdetachstate(&attr,
PTHREAD_CREATE_JOINABLE);
Чтобы создать поток, синхронизация с завершением которого невозможна (такой поток называют «обособленным»), надо было бы сделать так:
pthread_attr_setdetachstate(&attr,
PTHREAD_CREATE_DETACHED);
Если вы желаете, чтобы поток унаследовал атрибуты диспетчеризации от потока, его создающего (то есть имел бы ту же самую дисциплину диспетчеризации и тот же самый приоритет, что и родитель), вам следует сделать так:
pthread_attr_setinheritsched(&attr, PTHREAD_INHERIT_SCHED);
Для создания потока, который использует атрибуты диспетчеризации, указанные в непосредственно в атрибутной записи (это делается при помощи функций
pthread_attr_setinheritsched(&attr,
PTHREAD_EXPLICIT_SCHED);
И наконец, функция
Бьерн Страуструп , Бьёрн Страуструп , Валерий Федорович Альмухаметов , Ирина Сергеевна Козлова
Программирование, программы, базы данных / Базы данных / Программирование / Учебная и научная литература / Образование и наука / Книги по IT