生產者與消費者模型

2021-08-07 03:27:36 字數 994 閱讀 5893

先介紹幾個函式:

生產消費者模型:二者共享資料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 整合執行緒安全的出隊操作 手撕生產者與消費者模型 實現執...