日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪(fǎng)問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) >

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

發(fā)布時(shí)間:2025/4/16 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 blockingdeque java_Java BlockingDeque解决生产者与消费者问题 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

BlockingDeque解決生產(chǎn)者與消費(fèi)者問(wèn)題的代碼如下:

import?java.util.concurrent.BlockingDeque;

import?java.util.concurrent.LinkedBlockingDeque;

/**

*?@from?www.ityuan.com

*?@Description:BlockingDeque解決生產(chǎn)者與消費(fèi)者問(wèn)題

*/

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?+?"?已生產(chǎn),編號(hào):?"?+?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?+?"?已消費(fèi),編號(hào)?"?+?j);

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

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

break;

}

Thread.sleep(300);

}?catch?(InterruptedException?e)?{

e.printStackTrace();

}

}

}

}

public?class?BlockingDequeTester?{

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

//?定義隊(duì)列的長(zhǎng)度為3。例如一個(gè)碗最多只能放6個(gè)面包。如果不吃的話(huà),其他的面包放不進(jìn)來(lái)

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

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

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

//?開(kāi)始生產(chǎn)面包

new?Thread(producer).start();

try?{

Thread.sleep(300);

}?catch?(InterruptedException?e)?{

e.printStackTrace();

}

//?開(kāi)始消費(fèi)面包

new?Thread(consumer).start();

}

}

執(zhí)行結(jié)果如下:

面包?已生產(chǎn),編號(hào):?0

面包?已生產(chǎn),編號(hào):?1

面包?已消費(fèi),編號(hào)?0

面包?已生產(chǎn),編號(hào):?2

面包?已消費(fèi),編號(hào)?1

面包?已生產(chǎn),編號(hào):?3

面包?已消費(fèi),編號(hào)?2

面包?已生產(chǎn),編號(hào):?4

面包?已消費(fèi),編號(hào)?3

面包?已生產(chǎn),編號(hào):?5

面包?已消費(fèi),編號(hào)?4

面包?已生產(chǎn),編號(hào):?6

面包?已消費(fèi),編號(hào)?5

面包?已生產(chǎn),編號(hào):?7

面包?已消費(fèi),編號(hào)?6

面包?已生產(chǎn),編號(hào):?8

面包?已消費(fèi),編號(hào)?7

面包?已生產(chǎn),編號(hào):?9

面包?已消費(fèi),編號(hào)?8

已吃到了編號(hào)8的面包,飽了,后面的不打算吃了,停止消費(fèi)嘍

《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專(zhuān)家共同創(chuàng)作,文字、視頻、音頻交互閱讀

總結(jié)

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

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。