遍匈 / 柴麻字荷恬狼由 / 序殻才?殻砿尖 /

将灸序殻揖化諒籾2?響宀-亟宀諒籾

<貧匯准 和匯准>

諒籾宙峰

嗤響宀才亟宀曾怏旺窟序殻?慌峴匯倖猟周?輝曾倖賜參貧議響序殻揖扮恵諒慌峴方象扮音氏恢伏険恬喘?徽飛蝶倖亟序殻才凪麿序殻?響序殻賜亟序殻?揖扮恵諒慌峴方象扮夸辛嬬擬崑方象音匯崑議危列。咀緩勣箔??塋俯謹倖響宀辛參揖扮斤猟周峇佩響荷恬??峪塋俯匯倖亟宀吏猟周嶄亟佚連??販匯亟宀壓頼撹亟荷恬岻念音塋俯凪麿響宀賜亟宀垢恬?∠亟宀峇佩亟荷恬念?哘斑厮嗤議響宀才亟宀畠何曜竃。

諒籾蛍裂

1) 購狼蛍裂。喇籾朕蛍裂響宀才亟宀頁札鰍議?亟宀才亟宀匆頁札鰍議?遇響宀才響宀音贋壓札鰍諒籾。

2) 屁尖房揃。曾倖序殻?軸響宀才亟宀。亟宀頁曳熟酒汽議?万才販採序殻札鰍?喘札鰍佚催楚議P荷恬、V荷恬軸辛盾畳。響宀議諒籾曳熟鹸墫?万駅倬糞孖嚥亟宀札鰍議揖扮珊勣糞孖嚥凪麿響宀議揖化?咀緩?叙叙酒汽議匯斤P荷恬、V荷恬頁涙隈盾畳議。椎担?壓宸戦喘欺阻匯倖柴方匂?喘万栖登僅輝念頁倦嗤響宀響猟周。輝嗤響宀議扮昨亟宀頁涙隈亟猟周議?緩扮響宀氏匯岷媼喘猟周?輝短嗤響宀議扮昨亟宀嘉辛參亟猟周。揖扮宸戦音揖響宀斤柴方匂議恵諒匆哘乎頁札鰍議。

3) 佚催楚譜崔。遍枠譜崔佚催楚count葎柴方匂?喘栖芝村輝念響宀方楚?兜峙葎0; 譜崔mutex葎札鰍佚催楚?喘噐隠擦厚仟count延楚扮議札鰍?譜崔札鰍佚催楚rw喘噐隠屬響宀才亟宀議札鰍恵諒。

旗鷹泌和?
int count=0; //喘噐芝村輝念議響宀方楚
semaphore mutex=1; //喘噐隠擦厚仟count延楚扮議札鰍
semaphore rw=1; //喘噐隠屬響宀才亟宀札鰍仇恵諒猟周
writer () { //亟宀序殻
 while (1){
 P(rw); // 札鰍恵諒慌峴猟周
 Writing; //亟秘
 V(rw) ; //瞥慧慌峴猟周
 }
}
reader () { // 響宀序殻
 while(1){
 P (mutex) ; //札鰍恵諒count延楚
 if (count==0) //輝及匯倖響序殻響慌峴猟周扮
 P(rw); //怦峭亟序殻亟
 count++; //響宀柴方匂紗1
 V (mutex) ; //瞥慧札鰍延楚count
 reading; //響函
 P (mutex) ; //札鰍恵諒count延楚
 count--; //響宀柴方匂受1
 if (count==0) //輝恷朔匯倖響序殻響頼慌峴猟周
 V(rw) ; //塋俯亟序殻亟
 V (mutex) ; //瞥慧札鰍延楚 count
 }
}

壓貧中議麻隈嶄?響序殻頁單枠議?匆祥頁傍?輝贋壓響序殻扮?亟荷恬繍瓜决岳?旺拝峪勣嗤匯倖響序殻試埔?昧朔遇栖議響序殻脅繍瓜塋俯恵諒猟周。宸劔議圭塀和?氏擬崑亟序殻辛嬬海扮寂吉棋?拝贋壓亟序殻“偶棒”議秤趨。

泌惚錬李亟序殻單枠?軸輝嗤響序殻屎壓響慌峴猟周扮?嗤亟序殻萩箔恵諒?宸扮哘鋤峭朔偬響序殻議萩箔?吉棋欺厮壓慌峴猟周議響序殻峇佩頼穎夸羨軸斑亟序殻峇佩?峪嗤壓涙亟序殻峇佩議秤趨和嘉塋俯響序殻壅肝塰佩。葎緩?奐紗匯倖佚催楚旺拝壓貧中議殻會嶄 writer()才reader()痕方嶄光奐紗匯斤PV荷恬?祥辛參誼欺亟序殻單枠議盾畳殻會。
int count = 0; //喘噐芝村輝念議響宀方楚
semaphore mutex = 1; //喘噐隠擦厚仟count延楚扮議札鰍
semaphore rw=1; //喘噐隠屬響宀才亟宀札鰍仇恵諒猟周
semaphore w=1; //喘噐糞孖“亟單枠”
writer(){
 while(1){
 P(w); //壓涙亟序殻萩箔扮序秘
 P(rw); //札鰍恵諒慌峴猟周
 writing; //亟秘
 V(rw); // 瞥慧慌峴猟周
 V(w) ; //志鹸斤慌峴屶周議恵諒
 }
}
reader () { //響宀序殻
 while (1){
 P (w) ; // 壓涙亟序殻萩箔扮序秘
 P (mutex); // 札鰍恵諒count延楚
 if (count==0) //輝及匯倖響序殻響慌峴猟周扮
 P(rw); //怦峭亟序殻亟
 count++; //響宀柴方匂紗1
 V (mutex) ; //瞥慧札鰍延楚count
 V(w); //志鹸斤慌峴猟周議恵諒
 reading; //響函
 P (mutex) ; //札鰍恵諒count延楚
 count--; //響宀柴方匂受1
 if (count==0) //輝恷朔匯倖響序殻響頼慌峴猟周
 V(rw); //塋俯亟序殻亟
 V (mutex); //瞥慧札鰍延楚count
 }
}
<貧匯准 和匯准>

AltStyle によって変換されたページ (->オリジナル) /