一、fork函數的作用
? ? 生成一個子進程,異步執行某個任務;
二、子進程的作用
? 1、子進程能復制一份父進程的變量、函數;
? 2、子進程可以和父進程同時并發執行;
? 函數語法:
pid_t? ?fork()
說明:調用后返回一個進程的代號;
三、使用案例
? fork函數需要unistd.h庫函數。
#include<stdio.h>
#include<unistd.h>// 測試fork()函數的使用?
// 適用于linux系統?
int main(){
?? ?int i = 10;
?? ?
?? ?// 創建子線程;
?? ?// 父進程和子進程擁有后面相同的代碼,但是不共享數據值;?
?? ?pid_t? t = fork();
?? ?
?? ?// 大于0,此時運行的是父進程?
?? ?if(t > 0) {
?? ??? ?i = i + 2;
?? ??? ?printf("父進程執行:%d\n", i);
?? ?} else if(t == 0) {
?? ??? ?// 等于0,此時運行的是子進程?
?? ??? ?i = i + 5;
?? ??? ?printf("子進程執行:%d\n", i);
?? ?} else {
?? ??? ?printf("子進程創建失敗。");
?? ?}
?? ?
?? ?return 0;
}
說明:
? 1、 pid_t 是int或者long long類型的別名;
? 2、fork()函數創建一個子進程,返回pid_t類型;
? 3、父進程和子進程的pid_t變量是不相同的;
? 4、父進程和子進程在fork()函數執行后,運行相同的代碼,但是用返回的pid_t類型值來判斷是父進程還是子進程;