生產者:producer;
消費者consumer;
籃子:basket_stack(以棧結構代替的籃子,丟進去的饅頭滿足先進後出)
問題描述:生產者生產10個饅頭丟進容量只有6的籃子裡面,消費者不斷吃掉籃子中的饅頭。
package consumer_producer;
public class consumer_producer
}class mantou
}class basket_stack catch (interruptedexception e)
} this.notify();
mt_stack[index]=mt;
index++; }
public synchronized mantou pop() catch (interruptedexception e)
} this.notify();
index--;
return mt_stack[index]; }}
class producer implements runnable
public void run() catch (interruptedexception e)
}} }
}class consumer implements runnable
public void run() catch (interruptedexception e)
}} }
}
執行結果:
多執行緒之消費者生產者問題
未經過處理的 如下 這裡有兩個問題 首先是對於info物件,生產者可能只新增了webname的資訊,而沒有來得及新增link資訊,程式就切換到了消費者執行緒,消費者執行緒將webname和上乙個info物件的link聯絡到一起。生產者存放了若干次的資料,消費者才開始讀取資料,或者是消費者取完乙個資料...
多執行緒之生產者消費者問題
一 問題概述 是處理併發問題的乙個典型應用。生產者程序和消費者程序同時發生,以此修改快取區buffer的資源。二 模型思路 被管理的資源good,在快取區內 class goods 主程式,再去補充細節 public class testpc 分析下需要,實現思路是快取區類中放有貨物的陣列,生產者程...
多執行緒之經典生產者消費者問題
通過訊號量,wait,nofity,synchronized來解決生產者消費者問題。例項如下 package thread public class threadwaitandnotifytest class iphone catch interruptedexception e system.ou...