next up previous contents
Next: Дисциплина планирования потока. Up: Атрибуты потоков. Previous: Состояние отделенного потока.   Contents

Ограничения потока.

Поток может быть ограничен (имеет тип PTHREAD_SCOPE_SYSTEM) или неограничен (имеет тип PTHREAD_SCOPE_PROCESS). Оба этих типа доступны только в пределах данного процесса. Функция pthread_attr_setscope() позволяет создать потоки указанных типов.

pthread_attr_setscope() возвращает 0 после успешного завершения или любое другое значение в случае ошибки. Пример вызова функции:

#include <pthread.h>

pthread_attr_t attr;

pthread_t tid;

void start_routine;

void arg;

int ret;

/* инициализация атрибутов по умолчанию */

ret = pthread_attr_init (&tattr);

/* ограниченное поведение */

ret = pthread_attr_setscope(&tattr, PTHREAD_SCOPE_SYSTEM);

ret = pthread_create (&tid, &tattr, start_routine, arg);

Функция pthread_attr_getscope() используется для определения ограниченности потока. Пример вызова:

#include <pthread.h>

pthread_attr_t tattr;

int scope;

int ret;

ret = pthread_attr_getscope(&tattr, &scope);

pthread_att_getscope() возвращает 0 после успешного завершения или любое другое значение в случае ошибки.



2003-12-09