生產者消費者問題

2021-07-03 17:17:35 字數 811 閱讀 5375

最近在學習執行緒同步問題,接觸了生產者和消費者問題:

生產者生產產品、消費者消費產品,兩者同時進行,怎麼樣實現兩者的執行緒同步?

1.此問題中首先要搞清楚問題中有哪兩個執行緒(生產者和消費者)

2.執行緒同步有什麼必要性(現實生活中的例項)

3.執行緒之間的關係(執行緒之間應該有個產品的緩衝區來形成兩個執行緒之間的關係)

4.兩個執行緒共享同乙個緩衝區

5.緩衝區滿,生產者等待。緩衝區空,消費者等待

public class producerconsumer 

}class product

public string tostring()

}class producer implements runnable

public void run() }}

class consumer implements runnable

public void run() }}

class store

catch (interruptedexception e)

}this.notifyall();

p[index] = pro;

index++;

} public synchronized product get()

catch (interruptedexception e)

}this.notifyall();

index--;

return p[index];

}}

生產者消費者問題

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 ...