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_getconcurrency 和 pthread_setconcurrency 子例程,因为它们的使用可能会与使用这些函数的应用程序冲突。
参数
| 项 | 描述 |
|---|---|
| 新级别 | 指定并行级别的值。 |
返回值
如果成功, pthread_setconcurrency 子例程将返回零。 否则,将返回错误号以指示错误。
pthread_getconcurrency 子例程始终返回先前对 pthread_setconcurrency的调用所设置的并行级别。 如果从未调用 pthread_setconcurrency 子例程,那么 pthread_getconcurrency 返回零。
错误代码
在下列情况下, pthread_setconcurrency 子例程将失败:
| 项 | 描述 |
|---|---|
| EINVAL | new_level 指定的值为负数。 |
| 再次 | 特定于 new_level 的值将导致超出系统资源。 |