日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux父子进程同步实验,Linux-父子进程的简单同步

發(fā)布時間:2024/10/14 linux 102 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux父子进程同步实验,Linux-父子进程的简单同步 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

int fork()

功能:創(chuàng)建一個子進(jìn)程

返回值:0-創(chuàng)建成功,-1-創(chuàng)建進(jìn)程失敗,>0-創(chuàng)建進(jìn)程成功,返回返回子進(jìn)程id

int wait(int * status)

功能:將調(diào)用的進(jìn)程掛起,等待子進(jìn)程運(yùn)行結(jié)束

參數(shù):指向整數(shù)的指針,0-子進(jìn)程正常結(jié)束,非0-出現(xiàn)運(yùn)行有誤

返回值:調(diào)用正常-子進(jìn)程id,調(diào)用進(jìn)程無子進(jìn)程-調(diào)用失敗,返回-1

int exit()

功能:終止進(jìn)程的執(zhí)行

返回值:無

sleep(n)

功能:進(jìn)程隨眠1秒

參數(shù):n-隨眠時間

實(shí)例代碼

1.1 父進(jìn)程創(chuàng)建子進(jìn)程,分別循環(huán)輸出"I am parent."和"I am child."5次,每次輸出一次后使用sleep(1)延時1s。

#include

#include

/*

1_1.c

父進(jìn)程創(chuàng)建子進(jìn)程,分別循環(huán)輸出

"I am child."和"I am parent."

每輸出一次隨眠1s。

*/

main()

{

int p;

while((p=fork())==-1);

if(p==0)

{/*子進(jìn)程塊*/

int i;

for(i=0;i<5;i++)

{

printf("I am child.\n");

sleep(1);

}

}

else

{/*父進(jìn)程塊*/

int i;

for(i=0;i<5;i++)

{

printf("I am parent.\n");

sleep(1);

}

}

}

1.2 在1.1的基礎(chǔ)上利用exit()和wait()實(shí)現(xiàn)父子進(jìn)程間的同步。

#include

#include

#include

/*

簡單的進(jìn)程同步:

父進(jìn)程等待子進(jìn)程輸出后再輸出

*/

main()

{

int p;

while((p=fork())==-1);

if(p==0)

{/*子進(jìn)程塊*/

int i;

for(i=0;i<5;i++)

{

printf("I am child.\n");

sleep(1);

}

exit(0);

}

else

{/*父進(jìn)程塊*/

int i;

for(i=0;i<5;i++)

{

wait(0);

printf("I am parent.\n");

sleep(1);

}

}

}

擴(kuò)展鏈接

&lbrack;apue&rsqb; 使用文件記錄鎖無法實(shí)現(xiàn)父子進(jìn)程交互執(zhí)行同步

父子進(jìn)程間交互執(zhí)行是指用一種同步原語,實(shí)現(xiàn)父進(jìn)程和子進(jìn)程在某一時刻只有一個進(jìn)程執(zhí)行,之后由另外一個進(jìn)程執(zhí)行,用一段代碼舉例如下: SYNC_INIT(); , counter=; pid_t pid ...

linux父子進(jìn)程問題

今天遇到一個linux進(jìn)程啟動時指定Max open files不對的問題,導(dǎo)致程序建立socket異常,進(jìn)而導(dǎo)致fullgc問題,影響正常服務(wù).所以順帶又溫習(xí)了下linux下的父子進(jìn)程的特性. 孤兒 ...

Linux 父子進(jìn)程實(shí)現(xiàn)復(fù)制文件內(nèi)容到另一個文件內(nèi)

1. 子進(jìn)程先拷貝前一半 ,父進(jìn)程一直阻塞到子進(jìn)程拷貝完再拷貝后一半 /* 子進(jìn)程先拷貝前一半文件,父進(jìn)程先阻塞等待子進(jìn)程拷貝完前一半內(nèi)容, * 然后父進(jìn)程在拷貝,后一半內(nèi)容 * */ #includ ...

linux殺死進(jìn)程的簡單講解

一. 終止進(jìn)程的工具kill .killall.pkill.xkill 終止一個進(jìn)程或終止一個正在運(yùn)行的程序,一般是通過kill .killall.pkill.xkill 等進(jìn)行.比如一個程序已經(jīng)死掉 ...

&lbrack;置頂&rsqb; 簡單解析linux下進(jìn)程通信方法

linux下的進(jìn)程通信手段基本上是從Unix平臺上的進(jìn)程通信手段繼承而來的.而對Unix發(fā)展做出重大貢獻(xiàn)的兩大主力AT&T的貝爾實(shí)驗(yàn)室及BSD(加州大學(xué)伯克利分校的伯克利軟件發(fā)布中心)在進(jìn)程間 ...

【Linux 進(jìn)程】fork父子進(jìn)程間共享數(shù)據(jù)分析

之前我們通過fork()函數(shù),得知了父子進(jìn)程之間的存在著代碼的拷貝,且父子進(jìn)程都相互獨(dú)立執(zhí)行,那么父子進(jìn)程是否共享同一段數(shù)據(jù),即是否存在著數(shù)據(jù)共享.接下來我們就來分析分析父子進(jìn)程是否存在著數(shù)據(jù)共享. ...

【Linux 進(jìn)程】之關(guān)于父子進(jìn)程之間的數(shù)據(jù)共享分析

之前我們通過fork()函數(shù),得知了父子進(jìn)程之間的存在著代碼的拷貝,且父子進(jìn)程都相互獨(dú)立執(zhí)行,那么父子進(jìn)程是否共享同一段數(shù)據(jù),即是否存在著數(shù)據(jù)共享.接下來我們就來分析分析父子進(jìn)程是否存在著數(shù)據(jù)共享. ...

linux進(jìn)程通信之使用匿名管道進(jìn)行父子進(jìn)程通信

管道:是指用于連接一個讀進(jìn)程和一個寫進(jìn)程,以實(shí)現(xiàn)它們之間通信的共享文件,又稱pipe文件. 管道是單向的.先進(jìn)先出的.無結(jié)構(gòu)的.固定大小的字節(jié)流,它把一個進(jìn)程的標(biāo)準(zhǔn)輸出和另一個進(jìn)程的標(biāo)準(zhǔn)輸入連接在一起 ...

LINUX編程學(xué)習(xí)筆記&lpar;十四&rpar; 創(chuàng)建進(jìn)程與 父子進(jìn)程內(nèi)存空間

1什么是進(jìn)程:進(jìn)程是一個執(zhí)行中的程序 執(zhí)行的程序: 代碼->資源->CPU 進(jìn)程有很多數(shù)據(jù)維護(hù):進(jìn)程狀態(tài)/進(jìn)程屬性 所有進(jìn)程屬性采用的一個樹形結(jié)構(gòu)體維護(hù) ps ?-a//所有進(jìn)程 ps - ...

隨機(jī)推薦

MyIsam和InnoDB的區(qū)別

個人見解: 1.最主要的差別就是Innodb 支持事務(wù)處理與外鍵和行級鎖.而MyISAM不支持 所以有用到事務(wù)處理和外鍵的,要用Innodb 2.?InnoDB 中不保存表的具體行數(shù),也就是說,執(zhí)行s ...

while do while 區(qū)別

一.while語句的一般形式為:while(表達(dá)式)語句其中表達(dá)式是循環(huán)條件,語句為循環(huán)體.while語句的語義是:計算表達(dá)式的值,當(dāng)值為真(非0)時, 執(zhí)行循環(huán)體語句. int i=10; whil ...

Git add 常見用法

Git add ? git add [參數(shù)] ?[--] //作用就是將我們需要提交的代碼從工作區(qū)添加到暫存區(qū),就是告訴git系統(tǒng),我們要提交哪些文件,之后就可以使用gi ...

Awk by Example--轉(zhuǎn)載

總結(jié)

以上是生活随笔為你收集整理的linux父子进程同步实验,Linux-父子进程的简单同步的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。