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

溫馨提示×

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
固阳县| 基隆市| 祥云县| 镇安县| 鄂托克前旗| 航空| 紫阳县| 临沧市| 仙桃市| 徐汇区| 专栏| 儋州市| 红桥区| 霞浦县| 织金县| 巴林左旗| 凤凰县| 新丰县| 佛坪县| 南开区| 东城区| 麦盖提县| 金溪县| 滕州市| 荃湾区| 香港| 河北区| 股票| 甘孜县| 云和县| 津南区| 余庆县| 垣曲县| 库尔勒市| 沾化县| 彩票| 白山市| 美姑县| 东光县| 休宁县| 新野县|