在http://www.CUOXin.com/nufangrensheng/p/3496323.html中討論了sysconf函數,Single UNIX Specification定義了與線程操作有關的一些限制。與其他的系統限制一樣,這些線程限制也可以通過sysconf函數進行查詢。表12-1總結了這些限制。
表12-1 線程限制和sysconf的name參數
限制名稱 | 描述 | name參數 |
PTHREAD_DESTRUCTOR_ITERATIONS | 線程退出時操作系統實現試圖銷毀線程私有數據的最大次數 | _SC_THREAD_DESTRUCTOR_ITERATIONS |
PTHREAD_KEYS_MAX | 進行可以創建的鍵的最大數目 | _SC_THREAD_KEYS_MAX |
PTHREAD_STACK_MIN | 一個線程的??捎玫淖钚∽止潝?/td> | _SC_THREAD_STACK_MIN |
PTHREAD_THREADS_MAX | 進行可以創建的最大線程數 | _SC_THREAD_THREADS_MAX |
與sysconf報告的其他限制一樣,這些限制的使用是為了增強應用程序在不同操作系統實現之間的可移植性。
表12-2給出了四種操作系統實現中線程限制的值。當某些操作系統實現沒有定義相應的sysconf符號(以_SC_開頭)時,圖中列出的值就是“未定義符號”;如果操作系統實現的限制是不確定的,列出的值就是“沒有確定的限制”,但這并不意味著值是無限制的;“不支持”表明操作系統實現定義了相應的sysconf限制符號,但是sysconf函數無法識別這個符號。
注意,雖然某些操作系統實現可能沒有提供訪問這些限制的方法,但這并不意味著這些限制不存在,它只是表明操作系統實現沒有提供使用sysconf訪問這些值的方法。
表12-2 線程配置限制的例子
限制 | FreeBSD 5.2.1 | linux 2.4.22 | Mac OS X 10.3 | Solaris 9 |
PTHREAD_DESTRUCTOR_ITERATIONS | 未定義符號 | 不支持 | 未定義符號 | 沒有確定的限制 |
PTHREAD_KEYS_MAX | 未定義符號 | 不支持 | 未定義符號 | 沒有確定的限制 |
PTHREAD_STACK_MIN | 未定義符號 | 不支持 | 未定義符號 | 4096 |
PTHREAD_THREADS_MAX | 未定義符號 | 不支持 | 未定義符號 | 沒有確定的限制 |
本篇博文內容摘自《UNIX環境高級編程》(第二版),僅作個人學習記錄所用。關于本書可參考:http://www.apuebook.com/。
新聞熱點
疑難解答