fork 子執行緒複製父執行緒執行緒空間但是共享正文部分,檔案描述符也複製#include int pthread(pthread_t *restrict tipd,
const pthread_attr_t *restrict attr,
void *(*start_rtn)(void *), void *restrict arg);
返回值:若成功返回0;否則,返回錯誤編號
就相當於執行了 dup 函式一樣。
#include
void
exit(int status);
void _exit(int status);
#include
void _exit(int status);
其中exit函式結束之前,會呼叫fflush函式,沖洗緩衝區 _exit _exit 函式
不沖洗緩衝區直接結束執行緒。
main 函式中的return 相當於exit 函式,效果一樣。
#include
void pthread_exit(void *rval_ptr); /* rval_ptr 相當於結束狀態 exit(stat)一樣) */
#include
int pthread_join(pthread_t thread, void **rval_ptr);
返回值:若成功,返回0;否則,返回錯誤編號
跟wait_pid 函式功能一樣,只是針對的是執行緒。
#include
int pause(void);
返回值:-1,errno 設定為 eintr
只有執行了乙個訊號處理程式並從其返回時,pause才返回。在這種情況下
pause返回-1, errno 設定為eintr。
unsigned
int alarm(unsigned
int seconds);
返回值:0或以前設定的鬧鐘時間的餘留秒數
sleep(int seconds) ;這個函式大家應該都很熟悉吧,那大家有木有自己
寫過這個函式,或者知道這個函式是怎麼實現的呢,其實我們可以通過alarm
這個函式定時,然後讓執行緒阻塞(pause),時間到之後喚醒執行緒就可以達到sleep的效果
不過因為涉及到了訊號的處理需要考慮競度問題,因為alarm時間到了之後系統
會給你發出訊號,訊號處理完之後會繼續執行pause之後的。下面是乙個簡單的例子
unsigned
int sleep1(unsigned
int seconds)
UNIX高階程式設計 執行緒控制
第12章執行緒控制 12.1 執行緒的四大屬性 pthread attr t int pthread attr init pthread attr t attr 初始化執行緒屬性 int pthread attr destroy pthread attr t attr 釋放執行緒屬性 如果不關心執行...
Unix 程序控制
一 程序 程序id為1是init程序,在自舉過程結束時由核心呼叫。程序id為2是頁精靈程序,此程序負責支援虛存系統的請頁操作。也是核心程序。二 fork 對於父程序已經終止的所有程序,它們的父程序都改變為init程序,我們稱這些程序由init程序領養。此保證了每個程序有乙個父程序。init被編寫成只...
unix程序控制
我們寫原始碼編譯成可執行檔案,我們執行可執行檔案生成程序程序處理我們job,跟使用者打交道的就是進城了。每個程序都有自己 的程序標識 非負整數 是唯一的,但是程序標示是可以復用的 當乙個程序結束後它的程序id就可以被別的新程序使用。當然了每 個程序也有自己的程序空間,程序空間大家都很熟悉了,程序空間...