pthread_create - create a new thread
#include <pthread.h>
int pthread_create(pthread_t * thread, pthread_attr_t * attr, void * (*start_routine)(void *), void * arg);
pthread_create creates a new thread of control that executes concurrently with the calling thread. The new thread applies the function start_routine passing it arg as first argument. The new thread terminates either explicitly, by calling pthread_exit(3) , or implicitly, by returning from the start_routine function. The latter case is equivalent to calling pthread_exit(3) with the result returned by start_routine as exit code.
The initial signal state of the new thread is inherited from it's creating thread and there are no pending signals. PThreads4W does not yet implement signals.
The initial CPU affinity of the new thread is inherited from it's creating thread. A threads CPU affinity can be obtained through pthread_getaffinity_np(3) and may be changed through pthread_setaffinity_np(3). Unless changed, all threads inherit the CPU affinity of the parent process. See sched_getaffinity(3) and sched_setaffinity(3).
The attr argument specifies thread attributes to be applied to the new thread. See pthread_attr_init(3) for a complete list of thread attributes. The attr argument can also be NULL, in which case default attributes are used: the created thread is joinable (not detached) and has default (non real-time) scheduling policy.
On success, the identifier of the newly created thread is stored in the location pointed by the thread argument, and a 0 is returned. On error, a non-zero error code is returned.
Xavier Leroy <Xavier.Leroy@inria.fr>
Modified by Ross Johnson for use with Pthreads4W.
pthread_exit(3) , pthread_join(3) , pthread_detach(3) , pthread_attr_init(3) , pthread_getaffinity_np(3) , pthread_setaffinity_np(3) , sched_getaffinity(3) , sched_setaffinity(3) .