亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

java如何實現阻塞隊列

小億
83
2024-05-21 17:13:33
欄目: 編程語言

在Java中,可以使用BlockingQueue接口來實現阻塞隊列。BlockingQueue接口繼承自Queue接口,它提供了一種線程安全的隊列實現,支持在隊列為空時等待元素被添加,或者在隊列已滿時等待空間被釋放。

常用的BlockingQueue實現類包括ArrayBlockingQueueLinkedBlockingQueuePriorityBlockingQueue等。

以下是一個使用ArrayBlockingQueue實現阻塞隊列的示例:

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

public class BlockingQueueExample {

    public static void main(String[] args) {
        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);
                }
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        });

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

        producer.start();
        consumer.start();
    }
}

在上面的示例中,生產者線程向ArrayBlockingQueue中添加元素,消費者線程從隊列中取出元素。如果隊列已滿或者為空時,線程會被阻塞,直到隊列中有空間或者有元素可取。

0
尼勒克县| 连南| 萍乡市| 江阴市| 博白县| 囊谦县| 蒲江县| 灵台县| 平阴县| 东海县| 张家口市| 黑水县| 梨树县| 南华县| 和平区| 黔西县| 肃北| 花莲县| 新昌县| 安岳县| 新津县| 碌曲县| 兴文县| 龙里县| 焦作市| 淄博市| 侯马市| 佛冈县| 长兴县| 丹凤县| 铜陵市| 汉阴县| 东平县| 收藏| 内乡县| 读书| 望城县| 长阳| 锡林郭勒盟| 屯门区| 建宁县|