From cppreference.com
intthrd_create(thrd_t*thr,thrd_start_tfunc,void*arg);(since C11)Creates a new thread executing the function func. The function is invoked as func(arg).
If successful, the object pointed to by thr is set to the identifier of the new thread.
The completion of this function synchronizes-with the beginning of the thread.
Parameters
thr - pointer to memory location to put the identifier of the new thread func - function to execute arg - argument to pass to the function Return value
if the creation of the new thread was successful. Otherwise returns
if there was insufficient amount of memory or
if another error occurred.
Notes
The thread identifiers may be reused for new threads once the thread has finished and joined or detached.
The type
is a typedef of int(*)(void*), which differs from the POSIX equivalent void*(*)(void*)
All thread-specific storage values (see
) are initialized to
.
Return from the function func is equivalent to calling
with the argument equal to the return value of func.
References
C17 standard (ISO/IEC 9899:2018):
7.26.5.1 The thrd_create function (p: 279)
C11 standard (ISO/IEC 9899:2011):
7.26.5.1 The thrd_create function (p: 383)
See also