先介紹幾個函式:
生產消費者模型:二者共享資料value,這裡,生產者是producter, 消費者是consumer。生產者負責放物品到value中,消費者使用wait( )等待生產者的通知。當得到通知後,消費者取出物品,並且用notify( )通知生產者,可以再放下一批物品。
**例項:
package cn.edu.pzhu;
class q catch (interruptedexception e)
}system.out.println("got: " + value);
tag = false;
notify();
return value;
}public
synchronized
void
put(int val) catch (interruptedexception e)
}system.out.println("put: " + val);
value = val;
tag = true;
notify();
}}class producer implements runnable
@override
public
void
run()
}}class consumer implements runnable
@override
public
void
run()
}}public
class
pcdemo
}
測試結果
put: 1
got: 1
put: 2
got: 2
put: 3
got: 3
put: 4
got: 4
如有不當之處歡迎指出! 生產者與消費者模型
如圖 一共有三種關係 生產者與生產者的互斥關係,消費者與消費者的互斥關係,生產者與消費者的互斥且同步關係。兩種角色 生產者 執行緒 與消費者 執行緒 乙個交易場所 倉庫 一段記憶體空間,且可存可取 二 基於單向鍊錶的生產者消費者模型 1 我們這裡用乙個單鏈表當做那段共享記憶體,簡單實現生產者消費者模...
生產者與消費者模型
生產者 消費者模型描述的是有一塊緩衝區作為倉庫,生產者可將產品放入倉庫,消費者可以從倉庫中取出產品,模型圖如下所示 1 三種關係 三種關係分別指的是 消費者和消費者,生產者和生產者,生產者和消費者 其中消費者和消費者,生產者和生產者之間都屬於競爭關係,生產者和消費者之間的關係相當於是一種食物鏈之間的...
生產者與消費者模型
一種場所,兩種角色,三種關係 功能 解耦合,支援忙閒不均,支援併發 stl std queue 非執行緒安全 class blockqueue queuepush int data 整合執行緒安全的入隊操作 queuepop int data 整合執行緒安全的出隊操作 手撕生產者與消費者模型 實現執...