linux编程之pthread_create函数
生活随笔
收集整理的這篇文章主要介紹了
linux编程之pthread_create函数
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
linux編程之pthread_create函數(shù)UNIX環(huán)境創(chuàng)建線程函數(shù),
具體格式:
#include<pthread.h>
int pthread_create(pthread_t *restrict tidp,const pthread_attr_t *restrict_attr,void*(*start_rtn)(void*),void *restrict arg);
返回值:
若成功則返回0,否則返回出錯(cuò)編號
返回成功時(shí),由tidp指向的內(nèi)存單元被設(shè)置為新創(chuàng)建線程的線程ID。
attr參數(shù)用于制定各種不同的線程屬性。新創(chuàng)建的線程從start_rtn函數(shù)的地址開始運(yùn)行,該函數(shù)只有一個(gè)無指針參數(shù)arg,如果需要向start_rtn函數(shù)傳遞的參數(shù)不止一個(gè),那么需要把這些參數(shù)放到一個(gè)結(jié)構(gòu)中,然后把這個(gè)結(jié)構(gòu)的地址作為arg的參數(shù)傳入。 linux下用C開發(fā)多線程程序,Linux系統(tǒng)下的多線程遵循POSIX線程接口,稱為pthread?! ?#include <pthread.h>int pthread_create(pthread_t *restrict tidp, const pthread_attr_t *restrict attr, void *(*start_rtn)(void), void *restrict arg);
Returns: 0 if OK, error number on failure由 restrict 修飾的指針是最初唯一對指針?biāo)赶虻膶ο筮M(jìn)行存取的方法,僅當(dāng)?shù)诙€(gè)指針基于第一個(gè)時(shí),才能對對象進(jìn)行存取。
對對象的存取都限定于基于由 restrict 修飾的指針表達(dá)式中。由 restrict 修飾的指針主要用于函數(shù)形參,或指向由 malloc() 分配的內(nèi)存空間。
restrict 數(shù)據(jù)類型不改變程序的語義。
編譯器能通過作出 restrict 修飾的指針是存取對象的唯一方法的假設(shè),更好地優(yōu)化某些類型的例程?! ?第一個(gè)參數(shù)為指向線程標(biāo)識符的指針?! ?第二個(gè)參數(shù)用來設(shè)置線程屬性?! ?第三個(gè)參數(shù)是線程運(yùn)行函數(shù)的起始地址?! ?最后一個(gè)參數(shù)是運(yùn)行函數(shù)的參數(shù)?! ?另外,在編譯時(shí)注意加上-lpthread參數(shù),以調(diào)用靜態(tài)鏈接庫。因?yàn)閜thread并非Linux系統(tǒng)的默認(rèn)庫
轉(zhuǎn)載于:https://www.cnblogs.com/yuzaipiaofei/archive/2011/07/13/4124634.html
總結(jié)
以上是生活随笔為你收集整理的linux编程之pthread_create函数的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Symantec Backup Exec
- 下一篇: 安全实现Linux网络监控(1)