The OpenNET Project
 
Поиск (ключи):    ПРОГРАММЫ СТАТЬИ СОВЕТЫ ФОРУМ
  WIKI НОВОСТИ (+) MAN'ы ДОКУМЕНТАЦИЯ

Каталог документации / Раздел "Программирование, языки" / Оглавление документа
next up previous contents
Next: Состояние отделенного потока. Up: Потоки (threads). Previous: Отладка многопоточного приложения.   Contents

Атрибуты потоков.

Атрибуты являются способом определить поведение потока, отличное от поведения по умолчанию. При создании потока с помощью pthread_create() или при инициализации переменной синхронизации может быть определен собственный объект атрибутов. Атрибуты определяются только во время создания потока; они не могут быть изменены в процессе использования.

Таким образом, обычно вызываются три функции:

Пример кода, выполняющего эти действия (рис. 27):

#include <pthread.h> 

pthread_attr_t tattr;

pthread_t tid;

void *start_routine;

void arg

int ret;

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

ret = pthread_attr_init(&tattr);

/* вызов соответствующих функций для изменения значений */

ret = pthread_attr_*(&tattr,SOME_ATRIBUTE_VALUE_PARAMETER);

/* создание потока */

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

Рис. 27. Изменение атрибутов потока.

Объект атрибутов является закрытым и не может быть непосредственно изменен операциями присваивания. Существует множество функций, позволяющих инициализировать, конфигурировать, и уничтожать любые типы объекта. Как только атрибут инициализируется и конфигурируется, это доступен всему процессу. Поэтому рекомендуется конфигурировать все требуемые спецификации состояния один раз на ранних стадиях выполнения программы. При этом соответствующий объект атрибутов может использоваться везде, где это нужно. Использование объектов атрибутов имеет два основных преимущества:

Объекты атрибутов требуют отдельного внимания во время выхода из процесса. Когда объект инициализируется, для него выделяется память. Эта память должна быть возвращена системе. Стандарт pthreads обеспечивает функции для удаления объектов атрибутов.

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

Пример вызова функции:

#include <pthread.h>

pthread_attr_t tattr;

int ret;

ret = pthread_attr_init(&tattr);

Значения по умолчанию для атрибутов (tattr) приведены в табл. 5:

Табл. 5. Атрибуты потока по умолчанию.

Атрибут Значение Смысл

Функция возвращает 0 после успешного завершения. Любое другое значение указывает, что произошла ошибка. Код ошибки устанавливается в переменной errno.

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

Пример вызова функции:

#include <pthread.h>

pthread_attr_t tattr;

int ret;

ret = pthread_attr_destroy(&tattr);

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



Subsections

2003-12-09

ПОДПИШИСЬ НА ЖУРНАЛ Linux Format 2012!

Журнал "Linux Format" (Линукс Формат)- Единственный в России и странах СНГ журнал на русском языке, посвящённый Linux и свободному ПО. Журнал для IT-директоров, IT-менеджеров, программистов, системных администраторов, учителей школ и преподавателей ВУЗов и всех пользователей ПК. В каждом выпуске: Новости индустрии OpenSource, обзоры новинок свободного ПО, обучающие и методические статьи.

Каждый, кто оформит подписку, получает бонусы и подарки- объёмные наклейки на системный блок, диск с архивом номеров за 2005-2011 г.г. и ежемесячно электронную версию журнала в pdf-формате.

Оформить подписку на год


  Закладки на сайте
  Проследить за страницей
Created 1996-2012 by Maxim Chirkov  
ДобавитьРекламаВебмастеруГИД  
RUNNet TopList