Java之多執行緒模擬 多生產者 多消費者

2021-07-05 12:57:16 字數 1283 閱讀 3320

測試入口:

/**

* 多執行緒程式:模擬2個生產者生產產品,3個消費者消費產品;2個生產者不停的生產商品,3個消費者不停的消費產品

* @author smilexs

* */

public class test

}

涉及原始碼:

public class resoures 

/*** 生產

* @param productname

*/public void produce(string productname) catch (interruptedexception e)

} //flag= flase時:生產

system.out.println(thread.currentthread().getname() +":生產了第"+count+"臺"+productname);

count++;

flag = true;

con.signalall();

lock.unlock();

} /**

* 消費

*/public void consume() catch (interruptedexception e)

} //flag=true,消費

flag=false;

con.signalall();

lock.unlock(); }

}

/**

* 生成者

*/public class producer implements runnable

@override

public void run()

resoures.isstop = true;

}}

/**

* 消費者

*/public class consumer implements runnable

@override

public void run()

}}

結果展示:

Thread執行緒之 多生產者與多消費者模擬生產消費

thread 執行緒經典示例之多生產者 多消費者 要求多個生產者進行生產 多個消費者進行消費 其間的生產和消費實現同步 如果庫存超過20則生產等待消費繼續 如果消費少於0則消費暫停生產繼續 方法摘要 實現如下 此模組實現主線程中建立兩個生產者物件 兩個消費者執行緒物件 public static v...

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

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

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

多生產者多消費者 兩個生產線程,兩個消費執行緒 兩個任務 生產任務,消費任務 乙份資料 public class demo5 資料類 class product1 catch interruptedexception e this.name name this.price price count s...