執行緒通訊的應用 經典例題 生產者 消費者問題

2022-08-26 09:36:11 字數 894 閱讀 2530

/**

* 執行緒通訊的應用:經典例題:生產者/消費者問題

** 生產者(productor)將產品交給店員(clerk),而消費者(customer)從店員處取走產品,

* 店員一次只能持有固定數量的產品(比如:20),如果生產者試圖生產更多的產品,店員

* 會叫生產者停一下,如果店中有空位放產品了再通知生產者繼續生產;如果店中沒有產品

* 了,店員會告訴消費者等一下,如果店中有產品了再通知消費者來取走產品。

** 分析:

* 1. 是否是多執行緒問題?是,生產者執行緒,消費者執行緒

* 2. 是否有共享資料?是,店員(或產品)

* 3. 如何解決執行緒的安全問題?同步機制,有三種方法

* 4. 是否涉及執行緒的通訊?是**/

class clerkelse catch (interruptedexception e) }}

//消費產品

public synchronized void consumeproduct() else catch (interruptedexception e) }}

}class producer extends thread

@override

public void run() catch (interruptedexception e)

clerk.produceproduct();}}

}class consumer extends thread

@override

public void run() catch (interruptedexception e)

clerk.consumeproduct();}}

}public class producttest

}

經典例題 生產者 消費者

package com.day0207 2 執行緒通訊的應用 經典例題 生產者 消費者 生產者 productor 將產品交給店員 clerk 而消費者 customer 從店員處取走產品,會叫生產者停一下,如果店中有空位放產品了再通知生產者繼續生產 如果店中沒有產品 了,店員會告訴消費者等一下,如...

java多執行緒經典例題 生產者 消費者問題

生產者 消費者問題 題目描述 生產者 productor 將產品交給店員 clerk 而消費者 customer 從店員處取走產品,店員一次只能持有固定數量的產品 比如 20 如果生產者試圖生產更多的產品,店員會叫生產者停一下,如果店中有空位放產品了再通知生產者繼續生產 如果店中沒有產品了,店員會告...

執行緒通訊的經典案例 生產者和消費者

本程式的核心結構如下 首先定義兩個類 乙個生產者執行緒,另乙個消費者執行緒類,生產者每生產完乙個資料之後,消費者要取走這些資料。現在的資料有兩種 title 小動物,content 草泥馬。title 小金子,content 不是好孩子 範例 基本模型 package thread class me...