1. 线程的状态转换
【说明】当线程调用pthread_cond_wait进入“等待Blocked”状态时,由于pthread_cond_wait内部会释放mutex同步锁,在这期间这个锁可能被其他线程所获得,因此线程还得等待mutex锁的释放而进入“锁定blocked”状态。
2. 线程限制
(1)查询线程限制:long sysconf (int name);
查询选项(name) |
限制 |
描述 |
_SC_THREADS |
_POSIX_THRERADS |
支持线程 |
_SC_THREAD_ATTR_STACKADDR |
_POSIX_THREAD_ATTR_STACKADDR |
支持线程栈地址属性 |
_SC_THREAD_ATTR_STACKSIZE |
_POSIX_THREAD_ATTR_STACKSIZE |
支持线程栈大小属性 |
_SC_THREAD_STACK_MIN |
PTHREAD_STACK_MIN |
线程栈最小大小(以字节为单位) |
_SC_TRHEAD_THREADS_MAX |
PTRHEAD_THREADS_MAX |
每个进程的最大线程数 |
_SC_THREAD_KEYS_MAX |
PTHREAD_KEYS_MAX |
每个进程关键字的最大数目 |
_SC_THREAD_PRIO_INHERIT |
_POSIX_TRHEAD_PRIO_INHERIT |
支持优先级继承选项 |
_SC_THREAD_PRIORITY_SCHEDULING |
_POSIX_THREAD_PRIORITY_SECHDULING |
支持线程优先级调度 |
_SC_THREAD_PROCESS_SHARED |
_POSIX_THREAD_PROCESS_SHARED |
支持进程共享同步 |
_SC_THREAD_SAFE_FUNCTION |
_POSIX_THREAD_SAFE_FUNCTION |
支持线程安全函数 |
_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 |
支持共享内存对象 |
(2)使用方法:
if(PTHREAD_STACK_MIN == syconf(_SC_THREAD_STACK_MIN)){ }
原文链接: https://www.cnblogs.com/5iedu/p/6476533.html
欢迎关注
微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍;
也有高质量的技术群,里面有嵌入式、搜广推等BAT大佬
原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/393592
非原创文章文中已经注明原地址,如有侵权,联系删除
关注公众号【高性能架构探索】,第一时间获取最新文章
转载文章受原作者版权保护。转载请注明原作者出处!