日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

blockingdeque java_Java BlockingDeque解决生产者与消费者问题

發布時間:2025/4/16 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 blockingdeque java_Java BlockingDeque解决生产者与消费者问题 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

BlockingDeque解決生產者與消費者問題的代碼如下:

import?java.util.concurrent.BlockingDeque;

import?java.util.concurrent.LinkedBlockingDeque;

/**

*?@from?www.ityuan.com

*?@Description:BlockingDeque解決生產者與消費者問題

*/

class?Producer?implements?Runnable?{

private?String?name;

private?BlockingDeque deque;

public?Producer(String?name,?BlockingDeque deque)?{

this.name?=?name;

this.deque?=?deque;

}

public?synchronized?void?run()?{

for?(int?i?=?0;?i?

try?{

deque.putFirst(i);

System.out.println(name?+?"?已生產,編號:?"?+?i);

Thread.sleep(300);

}?catch?(InterruptedException?e)?{

e.printStackTrace();

}

}

}

}

class?Consumer?implements?Runnable?{

private?String?name;

private?BlockingDeque deque;

public?Consumer(String?name,?BlockingDeque deque)?{

this.name?=?name;

this.deque?=?deque;

}

public?synchronized?void?run()?{

while?(true)?{

try?{

int?j?=?deque.takeLast();

System.out.println(name?+?"?已消費,編號?"?+?j);

if?(j?==?8)?{

System.out.println("已吃到了編號"+j+"的面包,飽了,后面的不打算吃了,停止消費嘍");

break;

}

Thread.sleep(300);

}?catch?(InterruptedException?e)?{

e.printStackTrace();

}

}

}

}

public?class?BlockingDequeTester?{

public?static?void?main(String[]?args)?{

//?定義隊列的長度為3。例如一個碗最多只能放6個面包。如果不吃的話,其他的面包放不進來

BlockingDeque deque?=?new?LinkedBlockingDeque(6);

Runnable?producer?=?new?Producer("面包",?deque);

Runnable?consumer?=?new?Consumer("面包",?deque);

//?開始生產面包

new?Thread(producer).start();

try?{

Thread.sleep(300);

}?catch?(InterruptedException?e)?{

e.printStackTrace();

}

//?開始消費面包

new?Thread(consumer).start();

}

}

執行結果如下:

面包?已生產,編號:?0

面包?已生產,編號:?1

面包?已消費,編號?0

面包?已生產,編號:?2

面包?已消費,編號?1

面包?已生產,編號:?3

面包?已消費,編號?2

面包?已生產,編號:?4

面包?已消費,編號?3

面包?已生產,編號:?5

面包?已消費,編號?4

面包?已生產,編號:?6

面包?已消費,編號?5

面包?已生產,編號:?7

面包?已消費,編號?6

面包?已生產,編號:?8

面包?已消費,編號?7

面包?已生產,編號:?9

面包?已消費,編號?8

已吃到了編號8的面包,飽了,后面的不打算吃了,停止消費嘍

《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的blockingdeque java_Java BlockingDeque解决生产者与消费者问题的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。