<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                ## 向題描述 假設一個系統有三個抽煙者進程和一個供應者進程。每個抽煙者不停地卷煙 并抽掉它,但是要卷起并抽掉一支煙,抽煙者需要有三種材料:煙草、紙和膠水。三個抽煙 者中,第一個擁有煙草、第二個擁有紙,第三個擁有膠水。供應者進程無限地提供三種材料, 供應者每次將兩種材料放到桌子上,擁有剩下那種材料的抽煙者卷一根煙并抽掉它,并給供 應者一個信號告訴完成了,供應者就會放另外兩種材料在桌上,這種過程一直重復(讓三個 抽煙者輪流地抽煙)。 ## 問題分析 1) 關系分析。供應者與三個抽煙者分別是同步關系。由于供應者無法同時滿足兩個或 以上的抽煙者,三個抽煙者對抽煙這個動作互斥(或由三個抽煙者輪流抽煙得知 2) 整理思路。顯然這里有四個進程。供應者作為生產者向三個抽煙者提供材料。 3) 信號量設置。信號量offer1、offer2、offer3分別表示煙草和紙組合的資源、煙草和 膠水組合的資源、紙和膠水組合的資源。信號量finish用于互斥進行抽煙動作。 代碼如下: ``` int random; //存儲隨機數 semaphore offer1=0; //定義信號量對應煙草和紙組合的資源 semaphore offer2=0; //定義信號量對應煙草和膠水組合的資源 semaphore offer3=0; //定義信號量對應紙和膠水組合的資源 semaphore finish=0; //定義信號量表示抽煙是否完成 //供應者 while(1){ random = 任意一個整數隨機數; random=random% 3; if(random==0) V(offerl) ; //提供煙草和紙 else if(random==l) V(offer2); //提供煙草和膠水 else V(offer3) //提供紙和膠水 // 任意兩種材料放在桌子上; P(finish); } //擁有煙草者 while(1){ P (offer3); // 拿紙和膠水,卷成煙,抽掉; V(finish); } //擁有紙者 while(1){ P(offer2); // 煙草和膠水,卷成煙,抽掉; V(finish); } //擁有膠水者 while(1){ P(offer1); // 拿煙草和紙,卷成煙,抽掉; v(finish); } ```
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看