2009年6月18日 星期四

Pthread

Pthread為POSIX所定義的thread標準界面,它目前已經被移植到許多平台上,因此使用pthread會有較好的可移植性。在linux中pthread是透過clone函式來產生thread,因此為kernel space thread。

int pthread_create(pthread_t * thread, pthread_attr_t * attr, void *(*start_routine)(void *), void * arg);

pthread_create函式用來建立新的執行緒,該執行緒的識別
會儲存在thread所指的空間上,attr用來設定建立的屬性為何,可以透過pthread_attr_*函式來設定,start_routine為該執行產生後所會執行函式的函式指標,最後的arg為傳遞給start_routine的參數。

int pthread_join(pthread_t th, void **thread_return);

pthread_join這個函式跟wait相似,只是它是用來等待某個執行序結束,呼叫它的執行緒將會被block住,直到等待的執行緒結束後才能繼續執行。等待執行緒th的返回值會儲存在thread_return所指的空間上,th的狀態必須為joinable,而且其狀態不能為detached,執行緒所使用的記憶體資源並不會釋放,直到被某個執行緒所join。

沒有留言:

張貼留言