/*
生產者、消費者 問題!!!
關係流程: 生產者----------------》 店員 (反饋) ------------------》消費者
生產者將產品交給店員,而消費者從店員購買產品:
如果,產品沒有了,就通知生產者生產產品,消費者等待;
如果,產品有剩餘,生產者等待生產,消費者買走產品!
可以看出中間變數是 【店員】 */
因此我們建立店員類用以反饋,何時生產者該生產了,消費者該取走產品了:
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...