Камерон Хьюз - Параллельное и распределенное программирование на С++
- Название:Параллельное и распределенное программирование на С++
- Автор:
- Жанр:
- Издательство:Издательский дом «Вильямс»
- Год:2004
- Город:МоскваСанкт-ПетербургКиев
- ISBN:ISBN 5-8459-0686-5 (рус.)ISBN 0-13-101376-9 (англ.)
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Камерон Хьюз - Параллельное и распределенное программирование на С++ краткое содержание
Эта книга адресована программистам, проектировщикам и разработчикам программных продуктов, а также научным работникам, преподавателям и студентам, которых интересует введение в параллельное и распределенное программирование с использованием языка С++.
Параллельное и распределенное программирование на С++ - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:
Если поток одновре м енно владеет нескольки м и м ьютекса м и, и н ициализированны м и в соответствии с различны м и протокола м и, он будет выполняться с са м ы м высоки м из приоритетов, полученных по каждо м у из протоколов.
TPI Если поток обращается к функции pthread_mutex_lock (), а атрибут protocol задавае м ого м ьютекса был инициализирован значение м PTHREAD_PRIO_INHERIT,и если вызывающий поток блокируется из-за того, что м ьютекс прина д лежит друго м у потоку, то этот поток — владелец м ьютекса — наследует уровень приоритета вызываю щ его потока, приче м до тех пор, пока он продолжает удерживать м ьютекс. Реализация устанавливает приоритет выполнения согласно м акси м ально м у значению (выбранного из заданного и всех унаследованных приоритетов). Более того, если этот поток — владелец м ьютекса са м блокируется по друго м у м ьютексу, такой же эффект наследования приоритетов рекурсивно распространяется и на этого владельца.
Возвращаемые значения
При успешно м завершении функции pthread_mutexattr_getprotocol() и pthread_mutexattr_setprotocol () возвра щ ают нулевое значение; в противно м случае — код ошибки, обозначаю щ ий ее характер.
Ошибки
Функция pthread_mutexattr_setprotocol () завершится неудачно, если:
[ ENOTSUP] значение, заданное пара м етро м pro tocol , не по д держивается.
Функции pthread_mutexattr_getprotocol() и pthread_mutexattr_setprotocol () м огут завершиться неу д ачно, если:
[EINVAL]значение, заданное пара м етро м attr, или пара м етро м protocol, недействительно;
[EPERM]инициатор вызова не обладает привиле г ия м и для выполнения этой операции.
Эти функции не возвра щ ают код ошибки [EINTR].
Примеры
Отсутствуют.
Замечания по использованию
Отсутствуют.
Логическое обоснование
Отсутствует.
Будущие направления
Отсутствуют.
Смотри также
pthread_cond_destroy (), pthread_create (), pthread_mutex_destroy (), то м Base Defmidons стандартаШЕЕ Std 1003.1-2001, .
Последовательность внесения изменений
Функции впервые реализованы в выпуске Issue 5. Включены для согласования с расширением POSIX Threads Extension.
Отмечены как часть группы Realtime Threads Feature Group.
Issue 6
Функции pthread_mutexattr_getprotocol() и pthread_mutexattr_setprotocol () от м ечены как часть опции Threads и одной из опций Thread Priority Protection или Thread Priority Inheritance.
Код ошибки [ENOSYS]был исключен, поскольку его нет с м ысла учитывать, если реализация не по д держивает опции Thread Priority Protection или Thread Priority Inheritance.
В целях согласования со стан д арто м ISO/IEC 9899:1999 в прототип функции pthread_mutexattr_getprotocol () было д обавлено ключевое слово restrict.
pthread_mutexattr_getpshared, pthread_mutexattr_setpshared
Имя
pthread_mutexattr_getpshared, pthread_mutexattr_setpshared — функ-ции считывания и установки атрибута process-shared.
Синопсис
THR #include TSH
int pthread_mutexattr_getpshared (
const pthread_mutexattr_t *restrict attr, int *restrict pshared); int pthread_mutexattr_setpshared(
pthread_mutexattr_t *attr, int pshared);
Описание
Функция pthread_mutexattr_getpshared () используется дл я получения значения атрибута process -shared объекта атрибутов, адресуе м о г о пара м етро м attr. Функция pthread_mutexattr_setpshared() позволяет установить атрибут process-shared в инициализированно м объекте атрибутов, адресуе м о м пара м етро м attr.
Атрибут process-shared устанавливается равны м значению PTHREAD_PROCESS_SHARED,чтобы позволить обработку м ьютекса любы м дру г и м потоко м, который и м еет доступ к па м яти, в которой раз м е щ ен этот м ьютекс, даже если он раз м е щ ен в па м яти, сов м естно используе м ой нескольки м и процесса м и. Если атрибут process-shared установлен равны м значению PTHREAD_PROCESS_PRIVATE, м ьютекс будет обрабатываться только теми потоками, созданными в одном процессе с потоком, который инициализировал этот мьютекс; если потоки из различных процессов попытаются работать с таким мьютексом, то дальнейшее их поведение не определено. По умолчанию этот атрибут устанавливается равны м значению PTHREAD_PROCESS_PRIVATE.
Возвращаемые значения
При успешном завершении функция pthread_mutexattr_setpshared() возвращает нулевое значение; в противном случае — код ошибки, обозначающий ее характер.
П ри успешно м завершении функция pthread_mutexattr_getpshared() возвра щ ает нулевое значение и сохраняет считанное значение атрибута process-shared объекта attr в объекте, адресуемом параметром pshared, в противном случае возвращается код ошибки, обозначающий ее характер.
Ошибки
Функции pthread_mutexattr_getpshared() и pthread_mutexattr_setpshared () м о г ут завершиться неудачно, если:
[ EINVAL] значение, заданное параметром attr, недействительно.
Функция pthread_mutexattr_setpshared () м ожет завершиться неу д ачно, если:
[EINVAL]новое значение, за д анное д ля атрибута, попадает вне диапазона значений, действительных д ля этого атрибута.
Эти функции не возвра щ ают код ошибки [EINTR].
Примеры
Отсутствуют.
Замечания по использованию
Отсутствуют.
Логическое обоснование
Отсутствует.
Будущие направления
Отсутствуют.
Смотри также
pthread_cond_destroy(), pthread_create(), pthread_mutex_destroy(), pthread_mutexattr_destroy (), то м Base Definidons стандарта IEEE Std 1003.1-2001, .
Последовательность внесения изменений
Функции впервые реализованы в выпуске Issue 5. Включены для согласования с расширение м POSIX Threads Extension.
Issue6
Функции pthread_mutexattr_getpshared() и pthread_mutexattr_setpshared () от м ечены как часть опций Threads и Thread Process-Shared Synchronization.
В целях согласования со стандарто м ISO/IEC 9899: 1999 в прототип функции pthread_mutexattr_getpshared () было добавлено ключевое слово restrict.
pthread_mutexattr_gettype, pthread_mutexattr_settype
Имя
pthread_mutexattr_gettype, pthread_mutexattr_settype — функции считывания и установки атрибута type.
Синопсис
XSI #include
int pthread_mutexattr_gettype (
const pthread_mutexattr_t *restrict attr, int *restrict type); int pthread_mutexattr_settype (
pthread_mutexattr_t *attr, int type);
Описание
Функции pthread_mutexattr_gettype() и pthread_mutexattr_settype() используются для считывания и установки соответственно атрибута type. Этот атрибут задается при вызове этих функций в пара м етре type. По у м олчанию атрибут type устанавливается равны м значению PTHREAD_MUTEX_DEFAULT.
Атрибут type содержит тип м ьютекса. Допусти м ы м и значения м и атрибута type м огут быть следую щ ие:
Читать дальшеИнтервал:
Закладка: