生產者-消費者

Code:
  1. var buffer: array[0,..., n -1] of item;   
  2.   
  3. empty, full mutex : semaphore := n, 0, 1;   
  4. in, out : integer := 0, 0;   
  5.   
  6. codebegin   
  7.     process Pi   
  8.     begin   
  9.         生產產品;   
  10.         P(empty);   
  11.         P(mutex);   
  12.         往buffer[in]放產品    
  13.         in := (in + 1) % n;   
  14.         V(mutex)   
  15.         V(full);   
  16.     end   
  17.        
  18.     process Ci   
  19.     begin   
  20.       P(full);   
  21.       P(mutex);   
  22.       從buffer[out]取產品   
  23.       out := (out + 1)mod n;   
  24.       V(mutex);   
  25.       V(empty);   
  26.       消費產品   
  27.     end   
  28. codeend   

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章