原文地址:http://deepfuture.iteye.com/blog/754933
使用sysconf( )
了解系统的线程资源限制是使得应用程序恰当地管理它们的关键。前面已经讨论了利用系统资源的示例。当设置线程的栈大小时,最小值为PTHREAD_MIN_STACK。栈大小不应当低于由pthread_attr_getstacksize( )返回的默认栈大小的最小值。每个进程的最大线程数决定了能够为每个进程创建的worker线程的上限。函数sysconf( )用于返回可配置系统限制或选项的当前值。系统中定义了同线程、进程和信号量相关的多个变量和常量。在表6-8中,列出了部分变量和常量。
表6-8
变 量
|
名字值(Name Value)
|
描 述
|
_SC_THREADS
|
_POSIX_THREADS
|
支持线程
|
_SC_THREAD_ATTR_
STACKADDR
|
_POSIX_THREAD_ATTR_
STACKADDR
|
支持线程栈地址属性
|
_SC_THREAD_ATTR_
STACKSIZE
|
_POSIX_THREAD_ATTR_
STACKSIZE
|
支持线程栈大小属性
|
_SC_THREAD_STACK_MIN
|
PTHREAD_STACK_MIN
|
线程栈存储区的
最小大小,以字节为单位
|
(续表)
变 量
|
名字值(Name Value)
|
描 述
|
_SC_THREAD_THREADS_MAX
|
PTHREAD_THREADS_MAX
|
每个进程的
最大线程数
|
_SC_THREAD_KEYS_MAX
|
PTHREAD_KEYS_MAX
|
每个进程关键
字的最大数目
|
_SC_THREAD_PRIO_INHERIT
|
_POSIX_THREAD_PRIO_
INHERIT
|
支持优先
级继承选项
|
_SC_THREAD_PRIO
|
_POSIX_THREAD_PRIO_
|
支持线程
优先级选项
|
_SC_THREAD_PRIORITY_
SCHEDULING
|
_POSIX_THREAD_PRIORITY_
SCHEDULING
|
支持线程优
先级调度选项
|
_SC_THREAD_PROCESS_
SHARED
|
_POSIX_THREAD_PROCESS_
SHARED
|
支持进程共享同步
|
_SC_THREAD_SAFE_
FUNCTIONS
|
_POSIX_THREAD_SAFE_
FUNCTIONS
|
支持线程安全函数
|
_SC_THREAD_DESTRUCTOR_
ITERATIONS
|
_PTHREAD_THREAD_
DESTRUCTOR_ITERATIONS
|
决定在线程退
出时尝试销毁
线程特定数据
的尝试次数
|
_SC_CHILD_MAX
|
CHILD_MAX
|
每个UID允许
的最大进程数目
|
_SC_PRIORITY_SCHEDULING
|
_POSIX_PRIORITY_
SCHEDULING
|
支持进程调度
|
_SC_REALTIME_SIGNALS
|
_POSIX_
REALTIME_SIGNALS
|
支持实时信号
|
_SC_XOPEN_REALTIME_
THREADS
|
_XOPEN_
REALTIME_THREADS
|
支持X/Open
POSIX实时
线程特性组
|
_SC_STREAM_MAX
|
STREAM_MAX
|
决定进程能够
打开的流的数目
|
_SC_SEMAPHORES
|
_POSIX_SEMAPHORES
|
支持信号量
|
_SC_SEM_NSEMS_MAX
|
SEM_NSEMS_MAX
|
决定线程能
够拥有的信号
量的最大数目
|
_SC_SEM_VALUE_MAX
|
SEM_VALUE_MAX
|
决定信号量的最大值
|
_SC_SHARED_MEMORY_
OBJECTS
|
_POSIX_SHARED_MEMORY_
OBJECTS
|
支持共享内存对象
|
下面是调用sysconf( )的示例:
- if(PTHREAD_STACK_MIN == (sysconf(_SC_THREAD_STACK_MIN))){
- //...
- }
代码中将sysconf( )返回的_SC_THREAD_STACK_MIN的值同PTHREAD_STACK_MIN这个常量值进行了比较。
分享到:
相关推荐
这里的“pi.rar_PI_linux 多线程_多线程_多线程求pi”主题涉及到的是利用多线程技术在Linux操作系统上计算圆周率π的过程。这个压缩包中的"pi.c"文件很可能包含了实现这一功能的C语言源代码。 圆周率π是一个无理数...
Linux多线程编程 1、多线程模型在单处理器模型和多处理器系统上,都能改善响应时间和吞吐量。 2、线程包含了表示进程内执行环境必须的信息,包括线程ID、一组寄存器、栈、调度优先级、策略、信号屏蔽字、errno变量、...
在编程领域,Linux环境下的C语言是至关重要的,因为它提供了对操作系统底层的直接访问,使得开发者可以编写高效、低级别的程序。"Linux C函数集"是一个集合,包含了大量用于Linux系统编程的C语言函数,这些函数是...
在IT领域,Linux系统与C语言的结合是开发者们常用的技术栈,特别是在系统级编程、设备驱动开发以及服务器端软件开发中。《Linux C 函数全集》这本书深入介绍了Linux环境下C语言的各种库函数,帮助程序员更好地理解和...
总的来说,Linux系统提供了丰富的工具和接口来获取和分析硬件配置,`sysconf`函数和`/proc/cpuinfo`文件是其中最常用的。通过这些工具,我们可以准确地判断和利用CPU的数量和特性,从而更好地进行系统管理和软件优化...
总的来说,通过`sysconf`函数可以轻松获取Linux系统中的CPU数量,而物理ID和核心ID的分析则有助于我们理解多核和超线程的CPU架构。这些知识在系统管理、性能优化以及资源调度中都非常重要,特别是在服务器配置和大型...
8. **系统信息获取**:`sysconf()`, `uname()`等,用于获取系统配置信息,如最大打开文件数、系统版本等。 9. **文件系统操作**:`mkdir()`, `unlink()`, `rename()`等,FFmpeg可能需要在磁盘上创建临时文件或目录...
- `sysconf`获取系统配置信息,如最大打开文件描述符数,最大线程数等。 - `getpid`,`getppid`分别获取当前进程ID和父进程ID。 这本Linux C函数手册对于开发者来说是一份宝贵的资源,它详尽地解释了这些函数的...
2.5.4 sysconf、pathconf和fpathconf 函数32 2.5.5 不确定的运行时限制38 2.6 选项42 2.7 功能测试宏44 2.8 基本系统数据类型45 2.9 标准之间的冲突45 2.10 小结46 习题46 第3章文件i/o 47 3.1 引言47 ...
2.5.4 sysconf、pathconf和fpathconf 函数32 2.5.5 不确定的运行时限制38 2.6 选项42 2.7 功能测试宏44 2.8 基本系统数据类型45 2.9 标准之间的冲突45 2.10 小结46 习题46 第3章文件i/o 47 3.1 引言47 ...
- 通过`<stdlib.h>`中的`malloc()`和`free()`了解内存分配和释放,以及`<unistd.h>`中的`sysconf()`获取系统配置信息,如最大打开文件数。 - `<stdio.h>`的`FILE`结构体和I/O函数可以用于磁盘文件的读写操作,进而...
7. **线程管理**:在Linux中,`pthread_create()`、`pthread_join()` 和 `pthread_exit()` 等函数用于创建、同步和结束线程,`pthread_mutex_t` 和 `pthread_cond_t` 用于线程间的互斥锁和条件变量。 8. **信号处理...
在Linux系统中,C语言是核心编程语言,用于构建操作系统本身和各种应用程序。这个"Linux C函数参考集合"提供了一套全面的C语言函数指南,涵盖了16个主题,是学习和开发Linux环境下C程序的重要资源。以下是这些主题中...
错误处理和信息获取方面,`errno` 变量记录了最近系统调用的错误代码,`perror` 函数将错误代码转换为人类可读的错误信息。`sysconf` 和 `getconf` 可以获取系统配置信息,`time` 和 `ctime` 处理时间相关的操作。 ...
除了上述常见的C库函数,Linux还提供了许多特定于系统的函数,例如与系统调用交互的`syscall`,以及访问系统信息的`sysconf`和`uname`等。 在学习和使用这些函数时,查阅在线文档如...
9. **配置文件和命令行参数**:`getopt()`函数用于解析命令行参数,而`sysconf()`和`getenv()`分别用于获取系统配置和环境变量。 10. **权限和访问控制**:C语言提供了`chmod()`, `chown()`, `access()`等函数,...
2.5.4 sysconf、pathconf和fpathconf函数 2.5.5 不确定的运行时限制 2.6 选项 2.7 功能测试宏 2.8 基本系统数据类型 2.9 标准之间的冲突 2.10 小结 习题 第3章 文件I/O 3.1 引言 3.2...
2.5.4 sysconf、pathconf和fpathconf函数 32 2.5.5 不确定的运行时限制 38 2.6 选项 42 2.7 功能测试宏 44 2.8 基本系统数据类型 45 2.9 标准之间的冲突 45 2.10 小结 46 习题 46 第3章 文件I/O 47...
285 第11章 线程 287 11.1 引言 287 11.2 线程概念 287 11.3 线程标识 288 11.4 线程的创建 288 11.5 线程终止 291 11.6 线程同步 297 11.7 小结 311 习题 311 第12章 线程控制 313 12.1 引言 ...