經典案列 生產者 消費者 簡易版!

2021-07-24 19:25:07 字數 1044 閱讀 3561

/*

生產者、消費者 問題!!!

關係流程:     生產者----------------》 店員 (反饋) ------------------》消費者

生產者將產品交給店員,而消費者從店員購買產品:

如果,產品沒有了,就通知生產者生產產品,消費者等待;

如果,產品有剩餘,生產者等待生產,消費者買走產品!

可以看出中間變數是    【店員】 */

因此我們建立店員類用以反饋,何時生產者該生產了,消費者該取走產品了:

package org.hh;

public class clerk catch (interruptedexception e)

}else

}/**

* 消費者從店員手中買走產品

* synchronized:上鎖

*/public synchronized void getproduct() catch (interruptedexception e)

}else}}

下面是各自功能: 1:

package org.hh;

//生產者要執行的任務            引用的介面        runnable 

public class producer implements runnable

@override

public void run() catch (interruptedexception e)

c1.addproduct();//生產產品}}

} 2:

package org.hh;

//這是消費者的功能

public class consumer implements runnable

@override

public void run() catch (interruptedexception e)

c1.getproduct();//取走產品}}

} 3:

package org.hh;

public class main }

經典例題 生產者 消費者

package com.day0207 2 執行緒通訊的應用 經典例題 生產者 消費者 生產者 productor 將產品交給店員 clerk 而消費者 customer 從店員處取走產品,會叫生產者停一下,如果店中有空位放產品了再通知生產者繼續生產 如果店中沒有產品 了,店員會告訴消費者等一下,如...

生產者消費者 生產者與消費者模式

一 什麼是生產者與消費者模式 其實生產者與消費者模式就是乙個多執行緒併發協作的模式,在這個模式中呢,一部分執行緒被用於去生產資料,另一部分執行緒去處理資料,於是便有了形象的生產者與消費者了。而為了更好的優化生產者與消費者的關係,便設立乙個緩衝區,也就相當於乙個資料倉儲,當生產者生產資料時鎖住倉庫,不...

生產者消費者

using system using system.collections.generic using system.threading namespace gmservice foreach thread thread in producers q.exit console.read public...