這是乙個生產者和消費者的例子。消費者從倉庫取物品,生產者向倉庫增加商品。
當商品說達到最大時,不能繼續增加商品,應該通知其他執行緒去取商品。
同樣,當倉庫商品為空時,無法取商品,而是通知其他執行緒增加商品。
這裡用到執行緒的兩個常用的方法:notifyall和wait方法。
packagecode.thread;
//product and custom
public
class
proandcus }//
商品倉庫
class
store
//增加商品
public
synchronized
void
add()
catch
(interruptedexception e)
}else
}//移除商品
public
synchronized
void
remove()
catch
(interruptedexception e)
}else
}}//
消費者class custom extends
thread
@override
public
void
run()
catch
(interruptedexception e)
}}}//
生產者class product extends
thread
@override
public
void
run()
catch
(interruptedexception e) }}
}
5 12 生產者和消費者
一 生產者和消費者之間的關係 1 生產者將生產出來的資訊不斷存入乙個區域內,消費者將資訊從該區域內不斷讀取出來 生產者錄入資訊 消費者讀取資訊 例 電影票 public class movie public void setname string name public string getinfo...
執行緒(六) 生產者消費者模式
為什麼要使用生產者消費者模式 什麼是生產者消費者模式 生產者消費模式是通過乙個容器來解決生產者和消費者的強耦合問題。生產者和消費這彼此之間不直接通訊,而通過阻塞佇列來進行通訊,所以生產者生產完資料之後不用等待消費者處理,直接扔給阻塞佇列,消費者不找生產者要資料,而是直接從阻塞佇列就相當於乙個緩衝區,...
多執行緒通訊(二)生產者 消費者模式
生產者 消費者模式其原理是基於wait notify實現的。通過 更能便於理解,廢話不多說,上 生成者和消費者一對一模式 生產者public class producer public void buildproduct 生產產品並通知消費者 thread.sleep 1000 system.out...