多執行緒之生產者消費者問題

2021-07-05 08:47:12 字數 842 閱讀 2050

生產者: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...