Вход/Регистрация
Параллельное и распределенное программирование на С++
вернуться

Хьюз Камерон

Шрифт:

Размер стека определяется как необязательный атрибут, поскольку само понятие стека зависит от конкретного компьютера. Например, в одних реализациях невозможно изменить размер стека, а в других в этом вообще нет необходимости, поскольку страницы стека могут быть несмежными и выделяться (и освобождаться) по требованию.

Механизм атрибутов разработан по большей мере ради расширяемости. Будущие дополнения к механизму атрибутов или любому объекту атрибутов, определенному в этом томе (разделе) стандарта IEEE Std 1003.1-2001, необходимо вносить с чрезвычайной тщательностью, чтобы они не отразились на совместимости на уровне машинных кодов.

Объекты атрибутов, даже создаваемые с помощью таких функций динамического распределения памяти, как malloc, во время компиляции могут иметь фиксированный размер. Это означает, например, что функция pthread_create в реализации с дополнениями для использования типа pthread_attr_t не сможет «видеть» за пределами области, которую двоичное приложение считает допустимой. Это говорит о том, что реализации должны поддерживать в объекте атрибутов поле размера, а также информацию о версии, если дополнения приходится использовать в различных направлениях (или объединять продукты различных изготовителей).

Будущие направления

Отсутствуют.

Смотри также

pthread_attr_getstackaddr, pthread_attr_getstacksize, pthread_attr_getdetachstate , thread_create , том Base Definidons стандарта IEEEStd 1003.1-2001, <pthread.h>.

Последовательность внесения изменений

Функции впервые реализованы в выпуске Issue 5. Включены для согласования с расширение м POSIX Threads Extension.

Issue 6

Функции pthread_attr_destroy и pthread_attr_init от м ечены как часть опции Threads.

При м еняется интерпретация IEEE PASC Interpretation 1003.1 #107, в которой указывается, что результат инициализации уже инициализированного объекта атрибутов потока не опре д елен.

pthread_attr_getdetachstate, pthread_attr__setdetachstate

Имя

pthread_attr_getdetachstate, pthread_attr__setdetachstate — функции считывания и записи атрибута detachstate.

Синопсис

THR #include <pthread.h>

int pthread_attr_getdetachstate (

const pthread_attr_t *attr, int *detachstate) ;

int pthread_attr_setdetachstate (pthread_attr_t *attr,

int detachstate) ;

Описание

Атрибут detachstate управляет тем, создается ли поток в открепленно м (отсоединенно м) состоянии. Если поток создается открепленным, то использование его идентификационного но м ера (ID) функция м и pthread_detach или pthread_join является ошибкой.

Функции pthread_attr_getdetachstate и pthread_attr_setdetachstate считывают и устанавливают соответственно атрибут detachstate в объекте атрибутов, адресуе м о м пара м етро м аttr.

С по м ощью функции pthread_attr_setdetachstate приложение м ожет установить атрибут detachstate равны м либо значению PTHREAD_CREATE_DETACHED, либо значению PTHREAD_CREATE_JOINABLE.

С по м ощью функции pthread_attr_getdetachstate считывается значение атрибута detachstate, которое м ожет быть равны м либо PTHREAD_ CREATE_DE TACHED, либо PTHREAD_CREATE_JO INABLE.

Значение PTHREAD_CREATE_DETACHED используется для перевода всех потоков, создавае м ых с по м ощью объекта, адресуе м ого пара м етро м attr, в открепленное состояние, в то вре м я как значение PTHREAD_CREATE_JO INABLE при м еняется для перевода всех потоков, создавае м ых с по м ощью объекта, адресуе м ого пара м етро м attr, в присоединенное состояние. По у м олчанию атрибут detachstate устанавливается равны м значению PTHREAD_CREATE_JO INABLE.

Возвращаемые значения

При успешно м завершении функции pthread_attr_getdetachstate и pthread_attr_setdetachstate возвращают нулевое значение; в противном случае — код ошибки, обозначающий ее характер.

Функция pthread_attr_getdetachstate при успешно м выполнении сохраняет значение атрибута detachstate в пара м етре detachstate.

Ошибки

  • Читать дальше
  • 1
  • ...
  • 178
  • 179
  • 180
  • 181
  • 182
  • 183
  • 184
  • 185
  • 186
  • 187
  • 188
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: