目錄
1.資源
2.消費者
3.生產者
4.測試
首頁 Java java教程 Java中消費者問題的程式碼分析

Java中消費者問題的程式碼分析

Sep 11, 2018 pm 02:05 PM
消費者 生產者

這篇文章帶給大家的內容是關於Java中消費者問題的程式碼分析,有一定的參考價值,有需要的朋友可以參考一下,希望對你有幫助。

1.資源

public class Resource {
    //当前资源的数量
    int num = 0;
    //当前资源的上限
    int size = 10;

    //消费资源
    public synchronized void remove() {
        //如果num为0,没有资源了,需要等待
        while (num == 0) {
            try {
                System.out.println("消费者进入等待");
                this.wait();
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
        //如果线程可以执行到这里,说明资源里有资源可以消费
        num--;
        System.out.println("消费者线程为:" + Thread.currentThread().getName() + "--资源数量:" + num);
        this.notifyAll();
    }

    //生产资源
    public synchronized void put() {
        //如果资源满了,就进入阻塞状态
        while (num == size) {
            try {
                System.out.println("生产者进入等待");
                this.wait();

            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }

        num++;
        System.out.println("生产者线程为:" + Thread.currentThread().getName() + "--资源数量:" + num);
        this.notifyAll();
    }
}
登入後複製

2.消費者

public class Consumer implements Runnable {

    private Resource resource;

    public Consumer(Resource resource) {
        this.resource = resource;
    }

    @Override
    public void run() {
        while (true){
            resource.remove();
        }

    }
}
登入後複製

3.生產者

public class Producer implements Runnable {

    private Resource resource;

    public Producer(Resource resource){
        this.resource=resource;
    }

    @Override
    public void run() {
        while (true){
            resource.put();
        }
    }
}
登入後複製

4.測試

public class TestConsumerAndProducer {

    public static void main(String[] args) {
        Resource resource = new Resource();
        //生产线程
        Producer p1 = new Producer(resource);
        //消费线程
        Consumer c1 = new Consumer(resource);

        new Thread(p1).start();

        new Thread(c1).start();
    }
}
登入後複製

Java中消費者問題的程式碼分析

# 相關推薦:

關於java生產者與消費者的實例詳解

java多執行緒之並發協作生產者消費者設計模式

以上是Java中消費者問題的程式碼分析的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

阿里二面:RocketMQ 消費者拉取一批訊息,其中部分消費失敗了,偏移量怎麼更新? 阿里二面:RocketMQ 消費者拉取一批訊息,其中部分消費失敗了,偏移量怎麼更新? Apr 12, 2023 pm 11:28 PM

大家好,我是君哥。最近有讀者參加面試時被問了一個問題,如果消費者拉取了一批訊息,例如 100 條,第 100 條訊息消費成功了,但是第 50 條消費失敗,偏移量會怎樣更新?就著這個問題,今天來聊聊一下,如果一批訊息有消費失敗的狀況時,偏移量怎麼保存。 1 拉取訊息1.1 封裝拉取請求以 RocketMQ 推模式為例,RocketMQ 消費者啟動程式碼如下:public static void main(String[] args) throws InterruptedException, MQClie

隊列的生產者與消費者模式在PHP與MySQL中的實作方法 隊列的生產者與消費者模式在PHP與MySQL中的實作方法 Oct 15, 2023 pm 02:33 PM

隊列的生產者與消費者模式在PHP與MySQL中的實作方法隨著網路業務的快速發展,系統中處理大量任務的需求變得越來越迫切。隊列是一種常見的解決方案,可以有效率地處理任務。隊列的生產者-消費者模式(Producer-ConsumerPattern)在PHP和MySQL中的實作方法是常見的解決方案,本文將介紹具體的實作方法,並提供程式碼範例。生產者-消費者模式

生產者-消費者問題及其在C++中的實現 生產者-消費者問題及其在C++中的實現 Sep 17, 2023 pm 11:09 PM

並發計算中普遍存在的同步挑戰被稱為生產者-消費者問題。鑑於多個執行緒或進程旨在在存取共享來源時協調各自的操作;這個問題需要複雜的溝通任務以及平衡的執行程序。今天的討論將有助於理解這一困難背後的概念,同時認識到它在當代計算機科學框架中的重要性-特別是在C++實現實踐中。理解生產者-消費者問題定義和目的解決生產者-消費者問題所帶來的挑戰的解決方案來自於明確劃分負責生產和使用資訊的人員之間的責任。當生產者自行產生新記錄時,消費者會透過同步他們的操作來確保它們被正確使用。人們必須小心避免競爭條件或死鎖等問題,如

高通驍龍4代2亮相 高通驍龍4代2亮相 Jun 28, 2023 am 08:02 AM

高通推出了其最新的行動平台高通驍龍4Gen2,這款新的處理器和平台專為價值智慧型手機而設計,我們可以期待在2023年下半年看到它用於智慧型手機。高通科技公司宣布推出新的Snapdragon4Gen2行動平台,經過創意設計,為全球更多消費者提供令人難以置信的行動體驗。驍龍4Gen2提供輕鬆的全天使用,具有快速的CPU速度、清晰的攝影和攝像,以及快速的5G和Wi-Fi以實現可靠的連接。 ®「驍龍-其核心-正在推動創新,同時滿足OEM和更廣泛行業的需求,」高通技術公司產品管理總監MatthewLop

Smart精靈#1 Pulse心動版購車權益揭秘,盛情奉獻消費者福利! Smart精靈#1 Pulse心動版購車權益揭秘,盛情奉獻消費者福利! Aug 21, 2023 pm 05:13 PM

Smart官方今日發布了全新的Smart精靈#1Pulse心動版權益調整公告,為消費者提供了更多購車福利。根據公告,在2023年8月16日至8月31日期間購買Smart精靈#1Pulse心動版的消費者將享受一系列豐厚的購車權益,這不僅為愛車者提供了更多實惠,還進一步提升了Smart精靈#1Pulse心動版的市場吸引力據了解,新的購車權益調整方案包括多個福利,其中之一是車輛尾款抵扣權益。購車者可以在尾款中享受高達1萬元的抵扣,減輕了部分經濟壓力。此外,官方還提供了免費升級權益,包括密友氛圍組套裝

調查顯示:消費者對人工智慧數據使用產生衝突 調查顯示:消費者對人工智慧數據使用產生衝突 Apr 18, 2023 pm 02:01 PM

思科的一項新的調查顯示,消費者支持人工智慧,但擔心企業如何使用這項技術,超過一半的受訪者表示,由於使用人工智慧,他們對組織失去了信任。這些數據在思科的2022年消費者隱私調查中揭露,該調查是對消費者對資料隱私的看法和行為的年度全球審查。今年的調查強調了進一步提高透明度的必要性,因為消費者表示,他們的首要任務是讓組織在如何使用個人資料方面更加透明。思科的調查也顯示,雖然消費者支援人工智慧(54%的人願意分享他們的匿名數據以改善人工智慧產品),但65%的人因使用人工智慧而失去了對組織的信任。 「企業

「遙遙領先」:消費者送錦旗表達對華為的喜愛 「遙遙領先」:消費者送錦旗表達對華為的喜愛 Sep 07, 2023 pm 01:21 PM

9月5日消息,華為最新的旗艦手機系列-華為Mate60系列,在中文網路世界引起了轟動。這一系列的手機不僅在市場上備受矚目,而且在消費者心中贏得了高度的愛和尊重。近日,華為門市開始販售Mate60系列,各地的消費者紛紛湧入門市,排起了長隊。一位熱情的消費者甚至送了一面錦旗給華為手機旗艦店,上面寫著“遙遙領先”,這是對華為在逆境中突破和創新的崇敬之情。據小編了解,9月3日,華為Mate60Pro在線上線下全面開售,幾乎在京東、天貓、華為商城等多個線上通路瞬間被搶購一空。華為官網上顯示,Mate

行動端接收申訴,「全國消協智慧 315 平台」微信小程式經營者端上線 行動端接收申訴,「全國消協智慧 315 平台」微信小程式經營者端上線 Jul 02, 2024 pm 06:45 PM

本站7月2日消息,《中華人民共和國消費者權益保護法實施條例》自7月1日起施行。本站從中國消費者協會官網獲悉,中國消費者協會開發了「全國消協智慧315平台」(簡稱「消協315」)平台的微信小程式經營者端,並於7月1日起上線運行。中國消費者協會表示,「消協315」經營者端有以下功能:透過微信搜尋「消協315」小程序,輕鬆入駐平台實現行動端接收消費者投訴支援行動端線上分辦、線上和解、經營者管理等多項功能「消協315」平台於2024年3月15日上線試運行。截至2024年6月底,共有1.7萬餘家經營者進駐

See all articles