歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Unix知識 >> Unix基礎知識 >> UNIX環境高級編程:線程屬性之並發度

UNIX環境高級編程:線程屬性之並發度

日期:2017/3/3 15:19:45   编辑:Unix基礎知識

並發度控制著用戶級線程可以映射的內核線程或進程的數目。如果操作系統的實現在內核級的線程和用戶級的線程之間保持一對一的映射,那麼改變並發度並不會有什麼效果,因為所有的用戶級線程都可能被調度到。但是,如果操作系統的實現讓用戶級線程到內核級線程或進程之間的映射關系是多對一的話,那麼在給定時間內增加可運行的用戶級線程數,可能會改善性能。

pthread_setconcurrency函數可以用於提示系統,表明希望的並發度。

#include <pthread.h>  
int pthread_getconcurrency(void);   //返回值:當前的並發度  
int pthread_setconcurrency(int level);   //返回值:若成功則返回0,否則返回錯誤編號

pthread_getconcurrency函數返回當前的並發度。如果操作系統當前正控制著並發度(即之前沒有調用過pthread_setconcurrency函數),那麼pthread_getconcurrency將返回0。

pthread_setconcurrency函數設定的並發度只是對系統的一個提示,系統並不保證請求的並發度一定會被采用。如果希望系統自己決定使用什麼樣的並發度,就把傳入的參數level設為0.這樣,應用程序調用level參數為0的pthread_setconcurrency函數,就可以撤銷在這之前level參數非零的pthread_setconcurrency調用所產生的作用。

查看本欄目更多精彩內容:http://www.bianceng.cn/OS/unix/

Copyright © Linux教程網 All Rights Reserved