久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

Linux內(nèi)核開發(fā)之并發(fā)控制(五)

 看風景D人 2014-07-19

"小濤,還有多少啊,,你看我本來就開玩笑似的說說火車票,飛機票的事,,看MM的事,你在眉飛色舞,,雞飛狗跳的沒完了呢…”

"???怎么這樣呢,,本來一個寢室,,做人的差別就那么大囁,,平時不好好學習,,有問題了問我,,給你免費教學,,還滿腹牢騷,,也太不夠朋友了吧…."我錘著桌子說.

"朋友,,我還不夠朋友啊,,你沒聽說嗎:朋友為我,兩肋插刀,,我為朋友,,插它兩刀..“小王打斷我,”聽你念經(jīng)似的,,都三個小時了,,你瞧,都來五了,,怎么,,你還想和老易的品三國pk一下誰的劇集..“

  想想我也無語了,太陽起了又落,,落了又起,;花兒也不知開了幾次,都懶得理我了,,我也尋思這個并發(fā)控制為啥就講不完呢..后面還有精彩的沒說呢,,不能在這里就把小王的勁頭給扼殺了…”好了,,你也別唧唧歪歪,嘟嘟倫倫了,,我發(fā)誓,,對燈發(fā)誓,如果這節(jié)還講不完,,你GF的事,,我給你解決了,,還不行嗎”我是無奈了,。

“這感情好..”一聽到MM的話題,小王總是有說不完的激情,,沒辦法,,做人的差距還就是那么大.

言歸正傳,話說...

出招表十:讀寫信號量(不是吧,,都十了,,怪不得小王不耐煩了,這么多招式,,相當你,,我有九陽神功護體還沒這么快呢..哎)

“小王,你記得不,,我在前邊提到過一招,,說的是:防讀不防寫…“

"記得,有MM,,我就記得,,沒有那就好說了..“

“得得,不問你了,,三句不離XXX”

  傳說中:讀寫信號量可允許N個讀執(zhí)行單元同時訪問共享資源,,而最多只能有一個寫執(zhí)行單元。

“我想起來了,想起來了,,就是和前邊的那個什么----防出不防進…..差不多…”想想小王那副口水哈子吊多長的樣子,,我都懶的理他了..

使用方法:1)定義和初始化讀寫信號量

              struct rw_semphore my_rws;    //定義讀寫信號量

              void init_rwsem(struct rw_semaphore *sem);    //初始化讀寫信號量

              2)讀信號量獲取

              void down_read(struct rw_semaphore *sem);

              int down_read_try(struct rw_semaphore *sem);

              3)讀信號量釋放

              void up_read(struct rw_semaphore *sem);

              4)寫信號量獲取

              void down_write(struct rw_semaphore *sem);

              int down_write_try(struct rw_semaphore *sem);

              5)寫信號量釋放

              void up_write(struct rw_semaphore *sem);

給個例子吧:

rw_semaphore rw_sem;//定義讀寫信號量
init_rwsem(&rw_sem);//初始化讀寫信號量

//讀時獲取信號量
down_read(&rw_sem);
...//臨界資源
up_read(&rw_sem);

//寫時獲取信號量
down_write(&rw_sem);
...//臨界資源
up_write(&rw_sem);

 


說句真的,如果小王賴上我給他找個MM,,我還心里真沒底,,所以嗎,下面說最最最最后一招,,我也就解放了哦…


出招表十一:互斥體(啥叫互斥體,,怎么感覺前邊的都是互斥體,呵呵,,確實,,只不過Linux開發(fā)者們覺得不過癮,,就專門研究了一個互斥體,誰讓咱用人家的東西呢)


使用方法:1)定義并初始化互斥體


              struct mutex my_mutex;


              mutex_init(&my_mutex);


             2)獲取互斥體


              void fastcall mutex_lock(struct mutex *lock);//引起的睡眠不能被打斷


              int fastcall mutex_lock_interruptible(struct mutex *lock);//可以被打斷


              int fastcall mutex_lock_trylock(struct mutex *lock);//嘗試獲得,,獲取不到也不會導致進程休眠


             3)釋放互斥體


              void fastcall mutex_unlock(struct mutex *lock);


給個例子:


struct mutex my_mutex;   //定義mutex


mutex_init(&my_mutex);


 


mutex_lock(&my_mutex);


….//臨界資源


mutex_unlock(&my_mutex);


 


完了,,一切都完了,有關并發(fā)控制的相關招數(shù)都完了,,小王也該放心去追MM了,,有我這幾招,看誰還敢競爭,,我也不用愁了,,總算在這一集講完了本不該講完的東西..


如果有需要,我會給大家講一節(jié)有關載入了并發(fā)控制的字符設備驅動程序,,名字我都想好了---需要的請舉手,,火熱招標中哈..


不好意思,人在江湖走,,怎能不濕腳,,不小心做起廣告來了…


 

    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點,。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,,謹防詐騙,。如發(fā)現(xiàn)有害或侵權內(nèi)容,請點擊一鍵舉報,。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多