奶头挺立呻吟高潮av全片,成人试看120秒体验区,性欧美极品v,A片高潮抽搐揉捏奶头视频

SUN認證

Java中Queue和BlockingQueue的區別

時間:2024-08-28 13:49:51 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的區別】相關文章:

PHP和Java的區別10-25

Java和PHP的區別06-02

Java與Java web的區別08-22

php中session和cookie的區別07-26

Java Web開發和J2EE的區別08-29

講解HTML中iframe和frame的區別10-06

關于HTML中Id和Name的區別06-10

關于javascript中apply()和call()方法的區別09-13

jQuery中的read和JavaScript中的onload函數的區別在哪07-15

PHP和Java的功能10-09

主站蜘蛛池模板: 义乌市| 鄂温| 余干县| 东源县| 乐清市| 克拉玛依市| 绍兴县| 安丘市| 花莲县| 将乐县| 吴川市| 阿瓦提县| 光泽县| 巴东县| 罗江县| 阿巴嘎旗| 邵阳县| 南靖县| 临桂县| 凯里市| 墨玉县| 全州县| 广德县| 太康县| 淄博市| 柳河县| 永和县| 阳原县| 卓尼县| 陆河县| 东台市| 酉阳| 灵寿县| 会同县| 九台市| 尉犁县| 弋阳县| 吐鲁番市| 获嘉县| 山阴县| 庆云县|