Linux生產者消費者問題程式設計例項

2021-05-25 08:50:29 字數 1061 閱讀 5740

#include

#include

#include

#include

#include

#include

#include

#define maxshm 5  //定義緩衝區陣列的下標變數個數

/*        定義3個訊號量的內部標識  */

int fullid;

int emptyid;

int mutexid;

/* 主函式  */

int main()

sleep(3);                    //sleep 3秒,等待消費者程序執行完畢

printf("poducer if over/n");

exit(0);

}else

printf("consunera is over/n");

exit(0);

}else

printf("consunerb is over/n");

exit(0);}}

}

/*   父程序返回後**3個子程序  */

wait(0);

wait(0);

wait(0);

/*  斷開並撤消2個共享記憶體  */

shmdt(array);

shmctl(arrayid,ipc_rmid,0);

shmctl(get);

shmctl(getid,ipc_rmid,0);

/*   撤消3個訊號量集  */

semctl(emptyid,ipc_rmid,0);

semctl(fullid,ipc_rmid,0);

semctl(mutexid,ipc_rmid,0);

exit(0);

**:

生產者消費者問題

public class producer consumer class godown public godown int num public synchronized void produce int n catch interruptedexception e curr num n syste...

生產者 消費者問題

在學習程序互斥中,有個著名的問題 生產者 消費者問題。這個問題是乙個標準的 著名的同時性程式設計問題的集合 乙個有限緩衝區和兩類執行緒,它們是生產者和消費者,生產者把產品放入緩衝區,相反消費者便是從緩衝區中拿走產品。生產者在緩衝區滿時必須等待,直到緩衝區有空間才繼續生產。消費者在緩衝區空時必 須等待...

生產者 消費者問題

1 程序互斥問題 緩衝區b是臨界資源,程序p和c不能同時對b進行操作,即只能互斥的操作 2 程序同步問題 p不能往 滿 的的緩衝區b放產品,c不能從空的緩衝區獲得產品。當緩衝區滿時,c必須先於p執行,當緩衝區空時,p必須先於c執行 我們給出如下基於記錄型 二元 訊號量機制的解法 10 9 2013 ...