linux執行緒-sysconf系統變數

weixin_34391854發表於2011-02-16

瞭解系統的執行緒資源限制是使得應用程式恰當地管理它們的關鍵。前面已經討論了利用系統資源的示例。當設定執行緒的棧大小時,最小值為PTHREAD_MIN_STACK。棧大小不應當低於由pthread_attr_getstacksize( )返回的預設棧大小的最小值。每個程式的最大執行緒數決定了能夠為每個程式建立的worker執行緒的上限。函式sysconf( )用於返回可配置系統限制或選項的當前值。系統中定義了同執行緒、程式和訊號量相關的多個變數和常量。在表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

執行緒棧儲存區的最小大小,以位元組為單位

_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( )的示例:

  1. if(PTHREAD_STACK_MIN == (sysconf(_SC_THREAD_STACK_MIN))){  
  2.    //...  

參考網址: 

http://deepfuture.javaeye.com/category/120753?page=4&show_full=true

相關文章