Jadual Kandungan
1.资源
2.消费者
3.生产者
4.测试
Rumah Java javaTutorial Java中消费者问题的代码分析

Java中消费者问题的代码分析

Sep 11, 2018 pm 02:05 PM
pengguna pengeluar

本篇文章给大家带来的内容是关于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();
    }
}
Salin selepas log masuk

2.消费者

public class Consumer implements Runnable {

    private Resource resource;

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

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

    }
}
Salin selepas log masuk

3.生产者

public class Producer implements Runnable {

    private Resource resource;

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

    @Override
    public void run() {
        while (true){
            resource.put();
        }
    }
}
Salin selepas log masuk

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();
    }
}
Salin selepas log masuk

20180911135448646.png

 相关推荐:

关于java生产者与消费者的实例详解

java多线程之并发协作生产者消费者设计模式

Atas ialah kandungan terperinci Java中消费者问题的代码分析. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Arahan sembang dan cara menggunakannya
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Halaman kedua Alibaba: Pengguna RocketMQ menarik sekumpulan mesej, tetapi sesetengah daripada mereka gagal menggunakan Bagaimana untuk mengemas kini offset? Halaman kedua Alibaba: Pengguna RocketMQ menarik sekumpulan mesej, tetapi sesetengah daripada mereka gagal menggunakan Bagaimana untuk mengemas kini offset? Apr 12, 2023 pm 11:28 PM

Salam semua, saya Abang Jun. Baru-baru ini, seorang pembaca ditanya soalan semasa temu bual Jika pengguna menarik sekumpulan mesej, seperti 100, dan mesej ke-100 berjaya digunakan, tetapi mesej ke-50 gagal, bagaimanakah offset akan dikemas kini? Mengenai isu ini, mari kita bincangkan hari ini tentang cara menyimpan offset jika sekumpulan mesej gagal digunakan. 1 Menarik mesej 1.1 Merangkum permintaan tarik Mengambil mod tolak RocketMQ sebagai contoh, kod permulaan pengguna RocketMQ adalah seperti berikut: public static void main(String[] args) throws InterruptedException, MQClie

Bagaimana untuk melaksanakan corak pengeluar dan pengguna baris gilir dalam PHP dan MySQL Bagaimana untuk melaksanakan corak pengeluar dan pengguna baris gilir dalam PHP dan MySQL Oct 15, 2023 pm 02:33 PM

Kaedah Pelaksanaan Corak Pengeluar dan Pengguna Gilir dalam PHP dan MySQL Dengan perkembangan pesat perniagaan Internet, keperluan untuk mengendalikan sejumlah besar tugas dalam sistem menjadi semakin mendesak. Baris gilir ialah penyelesaian biasa untuk mengendalikan tugas dengan cekap. Pelaksanaan corak pengeluar-pengguna baris gilir (Producer-ConsumerPattern) dalam PHP dan MySQL ialah penyelesaian biasa Artikel ini akan memperkenalkan kaedah pelaksanaan khusus dan menyediakan contoh kod. corak pengeluar-pengguna

Masalah pengeluar-pengguna dan pelaksanaannya dalam C++ Masalah pengeluar-pengguna dan pelaksanaannya dalam C++ Sep 17, 2023 pm 11:09 PM

Cabaran penyegerakan yang lazim dalam pengkomputeran serentak dikenali sebagai masalah pengeluar-pengguna. Memandangkan berbilang rangkaian atau proses direka bentuk untuk menyelaraskan operasinya apabila mengakses sumber yang dikongsi, masalah ini memerlukan tugas komunikasi yang kompleks serta pelaksanaan yang seimbang. Perbincangan hari ini akan membantu memahami konsep di sebalik kesukaran ini, sambil mengiktiraf kepentingannya dalam rangka kerja sains komputer kontemporari - terutamanya dalam amalan pelaksanaan C++. Memahami Definisi dan Tujuan Masalah Pengeluar-Pengguna Penyelesaian kepada cabaran yang ditimbulkan oleh masalah pengeluar-pengguna datang daripada tanggungjawab yang jelas ditanda antara mereka yang bertanggungjawab untuk menghasilkan dan menggunakan maklumat. Apabila pengeluar menjana sendiri rekod baharu, pengguna memastikan ia digunakan dengan betul dengan menyegerakkan operasi mereka. Seseorang mesti berhati-hati untuk mengelakkan masalah seperti keadaan perlumbaan atau kebuntuan, mis.

Qualcomm Snapdragon Generasi Ke-4 2 diumumkan Qualcomm Snapdragon Generasi Ke-4 2 diumumkan Jun 28, 2023 am 08:02 AM

Qualcomm telah melancarkan platform mudah alih terbaharunya, Qualcomm Snapdragon 4Gen 2. Pemproses dan platform baharu ini direka untuk telefon pintar bernilai dan kami boleh menjangkakan ia digunakan dalam telefon pintar pada separuh kedua 2023. Qualcomm Technologies mengumumkan platform mudah alih Snapdragon 4 Gen 2 baharu, direka secara kreatif untuk menyampaikan pengalaman mudah alih yang luar biasa kepada lebih ramai pengguna di seluruh dunia. Snapdragon 4Gen 2 memberikan penggunaan yang mudah sepanjang hari, dengan kelajuan CPU yang pantas, fotografi dan videografi yang jelas serta 5G dan Wi-Fi yang pantas untuk sambungan yang boleh dipercayai. ® "Snapdragon - pada terasnya - memacu inovasi sambil memenuhi keperluan OEM dan industri yang lebih luas," Matthew Lop, pengarah pengurusan produk, Qualcomm Technologies

Tinjauan menunjukkan: Konflik pengguna terhadap penggunaan data kecerdasan buatan Tinjauan menunjukkan: Konflik pengguna terhadap penggunaan data kecerdasan buatan Apr 18, 2023 pm 02:01 PM

Tinjauan baharu daripada Cisco menunjukkan bahawa pengguna menyokong kecerdasan buatan tetapi bimbang tentang cara perniagaan menggunakan teknologi tersebut, dengan lebih separuh daripada responden mengatakan mereka telah hilang kepercayaan terhadap organisasi mereka disebabkan penggunaan kecerdasan buatan. Data itu didedahkan dalam Tinjauan Privasi Pengguna Cisco 2022, tinjauan global tahunan tentang persepsi dan tingkah laku pengguna sekitar privasi data. Tinjauan tahun ini menyerlahkan keperluan untuk ketelusan selanjutnya, kerana pengguna mengatakan keutamaan utama mereka adalah untuk organisasi menjadi lebih telus tentang cara mereka menggunakan data peribadi mereka. Tinjauan Cisco juga menunjukkan bahawa walaupun pengguna menyokong AI (54% bersedia untuk berkongsi data tanpa nama mereka untuk meningkatkan produk AI), 65% telah kehilangan kepercayaan terhadap organisasi akibat penggunaan AI. "perusahaan

Smart Elf #1 Pulse Edition mendedahkan rahsia hak pembelian kereta dan menyumbang kepada kebajikan pengguna! Smart Elf #1 Pulse Edition mendedahkan rahsia hak pembelian kereta dan menyumbang kepada kebajikan pengguna! Aug 21, 2023 pm 05:13 PM

Smart secara rasmi mengeluarkan pengumuman pelarasan hak baharu untuk Smart Elf #1Pulse Heartbeat Edition hari ini, memberikan pengguna lebih banyak faedah pembelian kereta. Menurut pengumuman itu, pengguna yang membeli versi Smart Elf #1Pulse dari 16 Ogos hingga 31 Ogos 2023 akan menikmati satu siri hak pembelian kereta yang murah hati, yang bukan sahaja memberikan lebih banyak faedah untuk pencinta kereta, tetapi juga meningkatkan lagi Difahamkan bahawa pelan pelarasan hak pembelian kereta baharu merangkumi pelbagai faedah, salah satunya ialah hak potongan pembayaran akhir kenderaan. Pembeli kereta boleh menikmati potongan sehingga 10,000 yuan pada pembayaran akhir, mengurangkan beberapa tekanan kewangan. Di samping itu, pegawai itu juga menyediakan hak naik taraf percuma, termasuk kumpulan suasana kawan rapat yang ditetapkan

'Far Ahead': Pengguna menghantar sepanduk untuk menyatakan cinta mereka kepada Huawei 'Far Ahead': Pengguna menghantar sepanduk untuk menyatakan cinta mereka kepada Huawei Sep 07, 2023 pm 01:21 PM

Menurut berita pada 5 September, siri telefon mudah alih terbaharu Huawei, siri Huawei Mate60, telah menimbulkan sensasi di dunia Internet China. Siri telefon bimbit ini bukan sahaja telah menarik banyak perhatian di pasaran, tetapi juga memenangi tahap kasih sayang dan rasa hormat yang tinggi di hati pengguna. Baru-baru ini, kedai Huawei telah mula menjual siri Mate60, dan pengguna dari seluruh dunia telah berpusu-pusu ke kedai dan beratur. Seorang pengguna yang bersemangat malah menghantar sepanduk ke kedai utama telefon bimbit Huawei dengan perkataan "Far Ahead", yang merupakan tanda penghormatan terhadap kejayaan dan inovasi Huawei dalam menghadapi kesukaran. Mengikut pemahaman editor, Huawei Mate60Pro mula dijual dalam talian dan luar talian pada 3 September, dan dijual hampir serta-merta di berbilang saluran dalam talian seperti JD.com, Tmall dan Huawei Mall. Menurut laman web rasmi Huawei, Mate

Terminal mudah alih menerima aduan, dan terminal pengendali program mini WeChat 'Persatuan Pengguna Kebangsaan Smart 315' dilancarkan Terminal mudah alih menerima aduan, dan terminal pengendali program mini WeChat 'Persatuan Pengguna Kebangsaan Smart 315' dilancarkan Jul 02, 2024 pm 06:45 PM

Laman web ini melaporkan pada 2 Julai bahawa "Peraturan Mengenai Pelaksanaan Undang-undang Perlindungan Hak Pengguna Republik Rakyat China" akan berkuat kuasa pada 1 Julai. Tapak ini mengetahui daripada tapak web rasmi Persatuan Pengguna China bahawa Persatuan Pengguna China telah membangunkan bahagian pengendali program mini WeChat bagi platform "Platform 315 Persatuan Pengguna Kebangsaan" (dirujuk sebagai "Persatuan Pengguna 315") dan telah berada dalam talian. sejak 1 Julai. Persatuan Pengguna China menyatakan bahawa terminal pengendali "Persatuan Pengguna 315" mempunyai fungsi berikut: Cari applet "Persatuan Pengguna 315" melalui WeChat, log masuk ke platform dengan mudah, terima aduan pengguna pada terminal mudah alih, dan sokong pengendalian dalam talian, dalam talian penyelarasan, dan operasi pada terminal mudah alih Platform "Persatuan Pengguna 315" dengan banyak fungsi seperti pengurusan pengguna akan dilancarkan untuk operasi percubaan pada 15 Mac 2024. Menjelang akhir Jun 2024, lebih 17,000 pengendali akan menetap di

See all articles