回覆列表
  • 1 # lanfengz2

    我來回答一下吧。

    semaphore S=1,S1=0,S2=0,S3=0;//訊號量分別對應供應商和三個吸菸者

    boolean tobacco=false,paper=false,match=false;//原料初試狀態

    producer:

    while(true)

    P(S);

    隨機放兩個原料...使對應的變數為true

    //判斷需要喚醒的抽菸者

    if(paper&&match)

    V(S1);

    else if(tobacco&&match)

    V(S2);

    else

    V(S3);

    somker1:

    while(true)

    P(S1);

    paper=false;

    match=false;

    V(S);

    somker2:

    while(true)

    P(S2);

    tobacco=false;

    match=false;

    V(S);

    somker3:

    while(true)

    P(S3);

    tobacco=false;

    paper=false;

    V(S);

  • 中秋節和大豐收的關聯?
  • 五十歲的女人零基礎學習花藝,容易找到工作嗎?