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 - после успешного завершения - или любое другое значение - в случае ошибки.



2004-06-22