unix執行緒控制

2021-07-23 23:14:52 字數 1356 閱讀 9114

#include int pthread(pthread_t *restrict tipd,

const pthread_attr_t *restrict attr,

void *(*start_rtn)(void *), void *restrict arg);

返回值:若成功返回0;否則,返回錯誤編號

fork 子執行緒複製父執行緒執行緒空間但是共享正文部分,檔案描述符也複製

就相當於執行了 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就可以被別的新程序使用。當然了每 個程序也有自己的程序空間,程序空間大家都很熟悉了,程序空間...