pthread_getconcurrency 或 pthread_setconcurrency 子例程

用途

获取或设置并行级别。

线程库 (libthreads.a)

语法

#include <pthread.h>

int pthread_getconcurrency (void); 

int pthread_setconcurrency (new_level)
int new_level;

描述

pthread_setconcurrency 子例程允许应用程序通知线程实现其期望的并行级别 new_level。 未指定实现作为此函数调用的结果而提供的实际并行级别。

如果 new_level 为零,那么会使实现自行决定是否保持并行级别,就像从未调用 pthread_setconcurrency 一样。

pthread_getconcurrency 子例程返回先前对 pthread_setconcurrency 子例程的调用所设置的值。 如果先前未调用 pthread_setconcurrency 子例程,那么此函数返回零以指示实现保持并行级别。

当应用程序调用 pthread_setconcurrency时,它将通知实现其期望的并行级别。 实现将此用作提示,而不是需求。

使用这些子例程将更改应用程序所依赖的底层并行的状态。 建议库开发者不要使用 pthread_getconcurrencypthread_setconcurrency 子例程,因为它们的使用可能会与使用这些函数的应用程序冲突。

参数

描述
新级别 指定并行级别的值。

返回值

如果成功, pthread_setconcurrency 子例程将返回零。 否则,将返回错误号以指示错误。

pthread_getconcurrency 子例程始终返回先前对 pthread_setconcurrency的调用所设置的并行级别。 如果从未调用 pthread_setconcurrency 子例程,那么 pthread_getconcurrency 返回零。

错误代码

在下列情况下, pthread_setconcurrency 子例程将失败:

描述
EINVAL new_level 指定的值为负数。
再次 特定于 new_level 的值将导致超出系统资源。