亚洲一级电影在线观看,九九精品无码专区免费,亚洲AV无码资源在线观看 ,欧美国产高清

Java中Queue和BlockingQueue的區別

時間:2024-07-23 02:57:25 SUN認證 我要投稿
  • 相關推薦

關于Java中Queue和BlockingQueue的區別

  隊列是一種特殊的線性表,它只允許在表的前端(front)進行刪除操作,而在表的后端(rear)進行插入操作。進行插入操作的端稱為隊尾,進行刪除操作的端稱為隊頭。隊列中沒有元素時,稱為空隊列。下面小編準備了關于Java中Queue和BlockingQueue的區別,提供給大家參考!

  1.BlockingQueue:支持兩個附加操作的 Queue,這兩個操作是:檢索元素時等待隊列變為非空,以及存儲元素時等待空間變得可用。

  2.BlockingQueue 不接受 null 元素。

  3.BlockingQueue 可以是限定容量的。

  4.BlockingQueue 實現是線程安全的。Queue不是線程安全的。因此可以將Blockingqueue用于用于生產者-使用者隊列。

  根據Api修改的一個例子,大家可以修改自己體驗BlockingQueue的使用

  package test;

  import java.util.concurrent.ArrayBlockingQueue;

  import java.util.concurrent.BlockingQueue;

  /**

  * 生產者

  */

  class Producer implements Runnable {

  private final BlockingQueue queue;

  Producer(BlockingQueue q) {

  queue = q;

  }

  public void run() {

  try {

  for (int i = 0; i < 3; i++) {

  queue.put(produce());

  System.out.println("生產后:"+queue.peek());

  }

  } catch (InterruptedException ex) {

  ex.printStackTrace();

  }

  }

  Character produce() {

  char c = (char) (Math.random() * 26 + 'A');

  System.out.println("生產前:" + c);

  return c;

  }

  }

  /**

  * 消費者

  */

  class Consumer implements Runnable {

  private final BlockingQueue queue;

  Consumer(BlockingQueue q) {

  queue = q;

  }

  public void run() {

  try {

  while (true) {

  consume(queue.take());

  //Thread.sleep(100);

  }

  } catch (InterruptedException ex) {

  ex.printStackTrace();

  }

  }

  void consume(Character c) {

  System.out.println("消費:" + c);

  }

  }

  /**

  * 一個生產者、兩個消費者

  *

  */

  class Setup {

  public static void main(String[] args) {

  BlockingQueue q = new ArrayBlockingQueue(1);

  Producer p = new Producer(q);

  Consumer c1 = new Consumer(q);

  Consumer c2 = new Consumer(q);

  new Thread(p).start();

  new Thread(c1).start();

  new Thread(c2).start();

  }

  }

  –EOF–

【Java中Queue和BlockingQueue的區別】相關文章:

JAVA和.NET開發過程中的區別10-25

Java Web開發和J2EE的區別07-07

PHP中MySQL、MySQLi和PDO的用法和區別07-01

linux命令中su和sudo區別08-10

跆拳道中WTF和ITF的區別05-21

在Java中執行JavaScript代碼07-14

Java中的動態代碼編程06-27

速錄和打字的區別10-08

爽膚水和柔膚水的區別05-07

赤豆和紅豆的區別07-26

主站蜘蛛池模板: 亚洲免费人成影院| 精品一区二区三区av天堂| 精品国产自在久久现线拍| 18无码粉嫩小泬无套在线观看| 激情無極限的亚洲一区免费| 国产精品亚洲二区在线看| 亚洲午夜福利在线观看| 欧美日本免费一区二区三区| 人妻无码中文久久久久专区| 国产男女免费视频| 在线看片免费人成视频播| 亚洲日韩在线a视频在线观看| 中文字幕无码免费不卡视频 | 2014av天堂无码一区| 亚洲视频免| 九台市| 97精品尹人久久大香线蕉| 国产综合视频一区二区三区| 国产99视频精品免费视频6| 97超碰国产精品最新| 国内精品自线在拍| 日韩午夜精品免费理论片| 最新国产99热这里只有精品| 亚洲一区二区三区高清av| 亚洲午夜久久久久久久久久| 国产成人国产在线观看| 精品福利视频一区二区三区| 熟妇人妻无码中文字幕| 国产女主播高潮在线播放| 中文字幕v亚洲ⅴv天堂| 熟女人妇交换俱乐部| 免费永久在线观看黄网站| 欧美日韩中文国产一区| 国产精品免费视频网站| 国产成人精品亚洲午夜| 国产精品久久久久久人妻精品动漫 | 国产精品免费一区二区三区四区| 亚洲成a人片在线观看导航| 欧美成人看片一区二区| 最大胆裸体人体牲交免费 | 亚洲国产av美女网站|