The
pthread_attr_getscope() and
pthread_attr_setscope() functions get and set, respectively, the contention scope attribute in the
attr object.
The
contentionscope parameter specifies the scheduling contention scope of a thread. It is only possible to set the scope of a thread before the thread is created. There are two possible contention scopes:
PTHREAD_SCOPE_SYSTEM
The thread will contend for CPU resources with all other processes and threads in the system. Generally this means that the user thread is bound directly to the kernel scheduling for its entire lifetime.
PTHREAD_SCOPE_PROCESS
The thread will contend with other threads with the same scope attribute. In general, this means that all PTHREAD_SCOPE_PROCESS threads are grouped together and this group of threads contends for CPU resources. This is commonly seen to require a hybrid (“M:N”) threading model in order to multiplex the user and kernel space scheduling.
Only
PTHREAD_SCOPE_SYSTEM is supported in
NetBSD.