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

溫馨提示×

怎么用Java實現阻塞隊列

小億
99
2023-10-14 08:29:02
欄目: 編程語言

可以使用Java中的BlockingQueue接口來實現阻塞隊列。

首先,需要導入java.util.concurrent包,因為BlockingQueue接口是該包中的一部分。

然后,可以選擇合適的阻塞隊列實現類。常見的阻塞隊列實現類有ArrayBlockingQueueLinkedBlockingQueueSynchronousQueue等。

以下是一個使用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 producerThread = new Thread(() -> {
try {
// 生產1到10的數字,并將其放入隊列
for (int i = 1; i <= 10; i++) {
queue.put(i);
System.out.println("Produced: " + i);
Thread.sleep(1000);
}
} catch (InterruptedException e) {
e.printStackTrace();
}
});
// 創建一個消費者線程
Thread consumerThread = new Thread(() -> {
try {
// 從隊列中取出數字并消費
while (true) {
int num = queue.take();
System.out.println("Consumed: " + num);
Thread.sleep(2000);
}
} catch (InterruptedException e) {
e.printStackTrace();
}
});
// 啟動生產者和消費者線程
producerThread.start();
consumerThread.start();
}
}

在以上示例代碼中,創建了一個容量為10的ArrayBlockingQueue對象,然后創建了一個生產者線程和一個消費者線程。生產者線程會不斷生產數字并放入隊列中,消費者線程會從隊列中取出數字并消費。如果隊列已滿,生產者線程會被阻塞直到有空間可用;如果隊列為空,消費者線程會被阻塞直到隊列中有元素可取。

0
大安市| 穆棱市| 无锡市| 定日县| 永善县| 辉县市| 鹤壁市| 贵南县| 南丰县| 罗平县| 奉贤区| 永修县| 达日县| 高阳县| 宜兴市| 平舆县| 武山县| 霍山县| 上饶县| 新津县| 恩施市| 商城县| 郑州市| 瓦房店市| 鄄城县| 平度市| 乾安县| 吉林市| 东至县| 晋中市| 遂宁市| 沈丘县| 卓资县| 堆龙德庆县| 临江市| 唐山市| 柘城县| 晴隆县| 靖江市| 连州市| 吴堡县|