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

溫馨提示×

Java中synchronousqueue怎么使用

小億
87
2024-01-19 19:11:31
欄目: 編程語言

在Java中,可以使用SynchronousQueue來實現線程之間的同步通信。SynchronousQueue是一個不存儲元素的阻塞隊列,它的主要特點是生產者線程必須等待消費者線程消費完元素后才能繼續生產新的元素。

以下是使用SynchronousQueue的示例代碼:

import java.util.concurrent.SynchronousQueue;

public class SynchronousQueueExample {
    public static void main(String[] args) {
        SynchronousQueue<Integer> queue = new SynchronousQueue<>();

        // 創建生產者線程
        Thread producer = new Thread(() -> {
            try {
                int value = 1;
                while (true) {
                    // 將元素放入隊列
                    queue.put(value);
                    System.out.println("生產者生產了:" + value);
                    value++;
                    // 模擬生產者生產時間
                    Thread.sleep(1000);
                }
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        });

        // 創建消費者線程
        Thread consumer = new Thread(() -> {
            try {
                while (true) {
                    // 從隊列中取出元素
                    int value = queue.take();
                    System.out.println("消費者消費了:" + value);
                    // 模擬消費者消費時間
                    Thread.sleep(2000);
                }
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        });

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

在上述代碼中,首先創建了一個SynchronousQueue實例。然后創建了一個生產者線程,不斷地生產元素并放入隊列中。創建了一個消費者線程,不斷地從隊列中取出元素進行消費。生產者和消費者線程同時運行,但生產者必須等待消費者消費完元素后才能繼續生產新的元素,這樣就實現了線程之間的同步。

0
祁门县| 和顺县| 阿瓦提县| 浙江省| 万盛区| 金秀| 达拉特旗| 廉江市| 平果县| 泸溪县| 峨眉山市| 永年县| 桐梓县| 犍为县| 普陀区| 共和县| 永顺县| 星座| 临海市| 盐池县| 宿州市| 宁乡县| 千阳县| 盐山县| 东台市| 六安市| 含山县| 金乡县| 鹤庆县| 美姑县| 康乐县| 册亨县| 新泰市| 乐亭县| 疏附县| 清镇市| 开远市| 神农架林区| 隆林| 溆浦县| 鄂伦春自治旗|