Java多執行緒學習之生產者消費者問題(一)

2021-08-03 08:40:33 字數 1258 閱讀 3737

/**

*生產者消費者問提

* 為使達到生產乙個消費乙個的目的,使用等待喚醒機制

* wait():該方法可以讓執行緒處於凍結狀態,並將執行緒儲存到執行緒池中

* notify():喚醒指定執行緒池中的任意乙個執行緒

* notifyall():喚醒指定執行緒池中的所有執行緒

* 這些方法必須使用在同步中,因為它們用來操作同步鎖上的執行緒狀態

* 在使用這些方法時,必須標識它們所屬的鎖,標識方式就是 鎖物件.wait() 鎖物件.notify() 鎖物件.notifyall()

* 相同鎖的notify(),可以獲取相同鎖的wait();

*@author tf

*/class res

catch (interruptedexception e){}

this.name=name+"--"+count;

count++;

system.out.println(thread.currentthread().getname()+"....生產者...."+this.name);

//生產完畢,將標記改為true

flag=true;

//喚醒消費者

notify();

}//提供乙個商品獲取的方法

public

synchronized

void

get()

catch (interruptedexception e){}

system.out.println(thread.currentthread().getname()+"....消費者...."+this.name);

//將標記改為false

flag=false;

//喚醒生產者

notify();

}}//生產者

class producer implements runnable

public

void

run()

}//消費者

class consumer implements runnable

public

void

run()

}public

class

/** *@param args the command line arguments

*/public

static

void

main(string args)

}

java多執行緒(生產者 消費者)

if isempty 當生產者生產出來商品需要喚醒消費者消費,可進行如下控制 vector.vector.notify 喚醒消費方法還用到了同步的方法,具體語法如下 synchronized vector.vector 程式源 如下 public class thread01 public stat...

Java多執行緒實現,生產者消費者

根據自己的理解簡單的實現了乙個,生產者,消費者模式的多執行緒,請大家多提寶貴意見 sleep wait 比較 sleep 是thread的靜態方法,是用來修改執行緒自身的執行方式。執行緒睡眠時間不會釋放鎖,睡眠完成自動開始執行。wait 是object類中的方法,用作執行緒之間的通訊,被其他執行緒呼...

java多執行緒生產者 消費者模式

1 生產者僅僅在倉儲未滿時候生產,倉滿則停止生產。2 消費者僅僅在倉儲有產品時候才能消費,倉空則等待。3 當消費者發現倉儲沒產品可消費時候會通知生產者生產。4 生產者在生產出可消費產品時候,應該通知等待的消費者去消費 使用object的wait notify 方法 1.wait 當快取區已滿 已空時...