生產者消費者問題引入執行緒通訊的具體實現
package cn.sxt.thread;
public class goods
public void setbrand(string brand)
public string getname()
public void setname(string name)
public goods(string brand, string name)
public goods()
//加同步鎖的生產方法
public synchronized void set(string brand, string name) catch (interruptedexception e)
} //被喚醒後的執行緒開始執行下列**
this.brand = brand;
this.name = name;
system.out.println("生產者執行緒生產了---------"+this.brand+"---"+this.name);
flag=true;//flag為true,表名有商品了
super.notify();//喚醒在等待中的執行緒,可以來競爭資源(商品)了
}//加同步鎖的取出方法
public synchronized void get() catch (interruptedexception e)
} //被喚醒後的執行緒開始執行下列**
system.out.println("消費者取走了-------" + this.brand + "---" + this.name);
flag=false;//取完商品,把flag變為false
super.notify();//喚醒其他執行緒
}}
package cn.sxt.thread;
public class productor implements runnable
@override
public void run() catch (interruptedexception e)
}else catch (interruptedexception e)
} }}
}
package cn.sxt.thread;
public class customer implements runnable
public customer()
@override
public void run() catch (interruptedexception e) }
}}
package cn.sxt.thread;
public class test
}
多執行緒通訊(生產者,消費者問題)
理解多執行緒通訊,就是要用多執行緒需要有乙個共同的共享資源,通過該共享資源完成執行緒的通訊。例項 工廠 消費者 產品 工廠生產產品,消費者消費產品,產品就成了兩者之間的共享資源 產品的成員屬性 產品名,產品 是否需要生產的標識 public class goods public void setna...
執行緒通訊問題 生產者 消費者模式
解決執行緒之間通訊問題的方法 解決方法1 併發協作模型 生產者 消費者模式 管程法 測試 生產者 消費者模式 利用緩衝區解決 管程法 生產者 消費者 產品 緩衝區 public class testpc 生產者 class producftor extends thread 生產 override ...
生產者消費者執行緒
include include include includeusing namespace std typedef int semaphore 訊號量是一種特殊的整型變數 const int size of buffer 5 緩衝區長度 const unsigned short producers...