thrd_create
Определено в заголовке <threads.h> | ||
|---|---|---|
int thrd_create( thrd_t *thr, thrd_start_t func, void *arg ); | (с C11) |
Создаёт новую нить, выполняющую функцию func. Функция вызывается как func(arg).
При успехе, объект, на который указывает thr, устанавливается в идентификатор новой нити.
Завершение этой функции синхронизируется с началом работы нити.
Параметры
| thr | - | указатель на место в памяти для хранения идентификатора новой нити |
| func | - | функция для выполнения |
| arg | - | аргумент, передаваемый функции |
Значение возврата
thrd_success в случае успешного создания новой нити. В противном случае возвращает thrd_nomem при недостатке памяти или thrd_error при другой ошибке.
Примечания
Идентификаторы нитей могут быть повторно использованы для новых нитей, после завершения и присоединения или отсоединения нити.
Тип thrd_start_t — это псевдоним типа int(*)(void*), который отличается от POSIX-эквивалента void*(*)(void*)
Все значения, специфичные для нити (см. tss_create), инициализируются в NULL.
Возврат из функции func эквивалентен вызову thrd_exit с аргументом, равным значению возврата func.
Ссылки
- Стандарт C17 (ISO/IEC 9899:2018):
- 7.26.5.1 Функция thrd_create (с. 279)
- Стандарт C11 (ISO/IEC 9899:2011):
- 7.26.5.1 Функция thrd_create (с. 383)
См. также
|
(C11) | отделяет нить (функция) |
|
(C11) | блокируется до завершения нити (функция) |
Документация C++ для thread |
|
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/c/thread/thrd_create