MyWackoSite: КурсОперационныеСистемы/ПрактикумPosixThreads/PthreadLectures/CreateExit ...

Home Page | Каталог | Изменения | НовыеКомментарии | Пользователи | Регистрация | Вход:  Пароль:  
Это старая версия КурсОперационныеСистемы/ПрактикумPosixThreads/PthreadLectures/CreateExit за 2007-04-06 12:49:54..
В ходе этого раздела вы изучите

Создание нитей с атрибутами по умолчанию


В POSIX Thread API нить создается библиотечной функцией pthread_create(3C).

Параметры этой функции:

pthread_t * thread – Выходной параметр. Указатель на переменную, в которой при успешном завершении будет размещен идентификатор нити.
const pthread_attr_t * attr – Входной параметр. Указатель на структуру, в которой заданы атрибуты нити (рассматривается на следующей лекции). Если этот указатель равен NULL, используются атрибуты по умолчанию.
void *(*start_routine)(void*) – Входной параметр. Указатель на функцию, которая будет запущена во вновь созданной нити.
void * arg – Входной параметр. Значение, которое будет передано в качестве параметра start_routine.

Возвращаемое значение
0 при успешном завершении
Код ошибки при неудачном завершении

Коды ошибок
Значения кодов ошибок определены в виде символов препроцессора в файле errno.h
EAGAIN – системе не хватает ресурсов для создания нити. Возможно, не хватает памяти под стек, исчерпан архитектурный лимит на количество нитей в процессе (PTHREAD_THREADS_MAX) либо административное ограничение на количество нитей. Как и у остальных системных вызовов, код EAGAIN означает, что повторный вызов функции с теми же параметрами может не привести к ошибке.
EINVAL – один из параметров имеет недопустимое значение. Например, указатель на start_routine указывает на страницу памяти, исполнение которой запрещено.
EPERM – вы не имеете полномочий для исполнения нити с заданными атрибутами. Например, вы не можете установить заданные в структуре attr класс планирования или приоритет.

 
Файлов нет. [Показать файлы/форму]
Комментариев нет. [Показать комментарии/форму]