Чтение онлайн

на главную - закладки

Жанры

Параллельное и распределенное программирование на С++
Шрифт:

Ошибки

Функци я pthread_getschedparam м ожет завершитьс я неудачно, если:

[ESRCH] з н ачение, заданное пара м етро м thread, не относится ни к од-

ному из существующих потоков.

Функция pthread_setschedparam может завершиться неудачно, если:

[EINVAL] значение, заданное параметром policy, или значение одного из параметров

планирования, связанных со значением стратегии планирования policy, недействительно;

была сделана попытка установить для стратегии планирования или ее параметров неподдерживаемые значения;

была сделана попытка динамически изменить стратегию планирования, установив для нее значение SCHED_SPORADIC, при том, что реализация не поддерживает такое изменение;

инициатор вызова не имеет соответствующего разрешения устанавливать параметры планирования или стратегию планирования для заданного потока;

реализация не позволяет приложению модифицировать один из параметров в соответствии с заданным значением;

значение, заданное пара м етро м thread, не относится ни к одному из существующих потоков.

Эти функции не возвращают код ошибки [EINTR].

[ENOTSUP]

TSP [ENOTSUP]

[EPERM]

[EPERM]

[ESRCH]

Примеры

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

Замечания по использованию

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

Логическое обоснование

Отсутствует.

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

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

Смотри также

pthread_setschedprio , sched_getparam, sched_getscheduler , то м Base Definitions craHjapTaIEEEStd 1003.1-2001, <pthread.h>, <sched.h>.

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

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

Issue 6

Функции pthread_getschedparam и pthread_setschedparam от м ечены как часть опций Threads и Thread Execution Scheduling.

Код ошибки [ENOSYS] был исключен, поскольку е г о нет с м ысла учитывать, если реализация не под д ерживает опцию Thread Execution Scheduling.

К описанию прототипа функции pthread_setschedparam был приложен список опечаток Open Group Corrigendum U026/2, чтобы второй ар г у м ент этой функции и м ел тип int.

Для согласования со стандартом IEEE Std 1003.1d-1999 было добавлено значение стратегии планирования SCHED_SPORADIC.

В целях согласования со стандартом ISO/IEC 9899: 1999 в прототип функции pthread_getschedparam было добавлено ключевое слово restrict.

Был добавлен список опечаток Open Group Corrigendum U047/1.

Быладобавлена

интерпретация IEEE PASC 1тегрге1а1юп 1003.1 #96, отмечающая» что значения приоритета также можно установить путем вызова функции pthread_setschedprio.

pthread_join

Имя

pthread_join — функция ожидания завершения потока.

Синопсис

THR

#include <pthread.h>

int pthread_join (pthread_t thread, void **value _ptr);

Описание

Функция pthread_join приостанавливает выполнение вызывающего потока до тех пор, пока не завершится заданный поток (если он еще не завершился). Если после удачного возвращения из функции pthread_join параметр value_ptr не равен значению NULL значение, передавае м ое функции pthread_exit завершающимся потоком, будет доступным в области памяти, адресуемой параметром value_ptr. Успешное выполнение функции pthread_join означает, что заданный поток завершился. Результаты нескольких одновременных обращений к функции pthread_join , в параметрах которых задается один и тот же поток, не определены. Если поток, вызывающий функцию pthread_join, отменен, то заданный поток не будет выгружен.

Не определено, учитывается ли в значении {PTHREAD_THREADS_MAX} поток, который завершился, но остался отсоединенным.

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

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

Ошибки

Функция pthread_join завершится неудачно, если:

[EINVAL] реализация обнаружила, что значение, заданное параметром thread, не относится ни к одному из присоединенных потоков;

[ESRCH] не найден ни один поток, идентификационный номер которого (ID) соответствовал бы заданному потоку.

Функция pthread_join может завершиться неудачно, если:

[EDEADLK] была обнаружена взаимоблокировка или значение параметра thread соответствует вызывающему потоку.

Функция pthread_join не возвращает код ошибки [EINTR].

Примеры

Ниже приведен пример создания потока и его удаления.

typedef struct {

int *ar;

long n;

} subarray;

void *incer (void *arg) {

long i;

for (i = О; i < ((subarray *)arg) ->n; i++) ((subarray *) arg) ->ar[i]++;

}

int main (void) {

int ar[1000000];

pthread_t th1, th2;

subarray sbl, sb2;

sbl.ar = &ar[О];

sbl.n = 500000;

(void) pthread_create(&thl, NULL, incer, &sbl);

sb2.ar = &ar[500000];

sb2.n = 500000;

(void) pthread_create(&th2, NULL, incer, &sb2);

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

Моя на одну ночь

Тоцка Тала
Любовные романы:
современные любовные романы
короткие любовные романы
5.50
рейтинг книги
Моя на одну ночь

Черный Маг Императора 8

Герда Александр
8. Черный маг императора
Фантастика:
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
Черный Маг Императора 8

Измена. Отбор для предателя

Лаврова Алиса
1. Отбор для предателя
Фантастика:
фэнтези
5.00
рейтинг книги
Измена. Отбор для предателя

Кодекс Крови. Книга II

Борзых М.
2. РОС: Кодекс Крови
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Кодекс Крови. Книга II

Шаг в бездну

Муравьёв Константин Николаевич
3. Перешагнуть пропасть
Фантастика:
фэнтези
космическая фантастика
7.89
рейтинг книги
Шаг в бездну

Часовая битва

Щерба Наталья Васильевна
6. Часодеи
Детские:
детская фантастика
9.38
рейтинг книги
Часовая битва

Вечная Война. Книга II

Винокуров Юрий
2. Вечная война.
Фантастика:
юмористическая фантастика
космическая фантастика
8.37
рейтинг книги
Вечная Война. Книга II

Хроники странного королевства. Вторжение. (Дилогия)

Панкеева Оксана Петровна
110. В одном томе
Фантастика:
фэнтези
9.38
рейтинг книги
Хроники странного королевства. Вторжение. (Дилогия)

Часовой ключ

Щерба Наталья Васильевна
1. Часодеи
Фантастика:
фэнтези
9.36
рейтинг книги
Часовой ключ

Инвестиго, из медика в маги

Рэд Илья
1. Инвестиго
Фантастика:
фэнтези
городское фэнтези
попаданцы
5.00
рейтинг книги
Инвестиго, из медика в маги

Кротовский, может, хватит?

Парсиев Дмитрий
3. РОС: Изнанка Империи
Фантастика:
попаданцы
альтернативная история
аниме
7.50
рейтинг книги
Кротовский, может, хватит?

Драконий подарок

Суббота Светлана
1. Королевская академия Драко
Любовные романы:
любовно-фантастические романы
7.30
рейтинг книги
Драконий подарок

Очешуеть! Я - жена дракона?!

Амеличева Елена
Фантастика:
юмористическая фантастика
5.43
рейтинг книги
Очешуеть! Я - жена дракона?!

Идеальный мир для Лекаря 9

Сапфир Олег
9. Лекарь
Фантастика:
боевая фантастика
юмористическое фэнтези
6.00
рейтинг книги
Идеальный мир для Лекаря 9