91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

java怎么實現阻塞隊列

小億
77
2023-11-06 21:06:46
欄目: 編程語言

Java中可以使用BlockingQueue接口來實現阻塞隊列。BlockingQueue接口繼承自Queue接口,提供了阻塞隊列的基本操作方法,并新增了一些阻塞等待的方法。

常用的BlockingQueue的實現類有:

  • ArrayBlockingQueue:基于數組的有界阻塞隊列。
  • LinkedBlockingQueue:基于鏈表的可選有界或無界阻塞隊列。
  • PriorityBlockingQueue:支持優先級排序的無界阻塞隊列。
  • DelayQueue:延遲隊列,元素只有在其指定的延遲時間到期時才能出隊列。
  • SynchronousQueue:容量為0的阻塞隊列,用于線程間直接交換數據。

下面是使用ArrayBlockingQueue實現阻塞隊列的示例代碼:

import java.util.concurrent.ArrayBlockingQueue;
import java.util.concurrent.BlockingQueue;

public class BlockingQueueExample {
    public static void main(String[] args) {
        // 創建一個容量為10的阻塞隊列
        BlockingQueue<Integer> queue = new ArrayBlockingQueue<>(10);

        // 生產者線程
        Thread producer = new Thread(() -> {
            try {
                for (int i = 0; i < 10; i++) {
                    queue.put(i); // 將元素放入隊列
                    System.out.println("Produced: " + i);
                    Thread.sleep(1000);
                }
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        });

        // 消費者線程
        Thread consumer = new Thread(() -> {
            try {
                for (int i = 0; i < 10; i++) {
                    int num = queue.take(); // 從隊列中取出元素
                    System.out.println("Consumed: " + num);
                    Thread.sleep(2000);
                }
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        });

        // 啟動生產者和消費者線程
        producer.start();
        consumer.start();

        try {
            // 等待生產者和消費者線程執行完畢
            producer.join();
            consumer.join();
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }
}

在上述示例中,生產者線程通過put()方法將元素放入隊列,如果隊列已滿,則會阻塞等待;消費者線程通過take()方法從隊列中取出元素,如果隊列為空,則會阻塞等待。

0
定兴县| 松滋市| 新昌县| 清新县| 甘德县| 凭祥市| 临安市| 射阳县| 双柏县| 肥城市| 斗六市| 隆回县| 彰化市| 进贤县| 陆川县| 波密县| 苏尼特左旗| 佛冈县| 图木舒克市| 磐安县| 大洼县| 全南县| 桂东县| 永昌县| 西乌珠穆沁旗| 罗江县| 琼结县| 油尖旺区| 阳泉市| 朝阳区| 邯郸市| 甘德县| 鹤山市| 德庆县| 原平市| 麻栗坡县| 普安县| 枣阳市| 财经| 冷水江市| 左权县|