24小时热门版块排行榜    

查看: 481  |  回复: 2
本帖产生 1 个 程序强帖 ,点击这里进行查看

sangzhipei1178

新虫 (小有名气)

[求助] 用缓冲区实现消费者机制

用缓冲区实现生产者消费者问题,设置一个缓冲区 然后生产者生产的物品放进去 再由消费者从缓冲区中取走,如果缓冲区为空则消费者进程阻塞 等待 由生产者生产后 缓冲区不为空 才可取走,若缓冲区已满 则生产进程阻塞等待.要一个可以运行的java程序
回复此楼
石激声则鸣!人激志则宏!
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

文俊点点

木虫 (著名写手)

【答案】应助回帖

感谢参与,应助指数 +1
人懒了·······不想写·······自己百度·······有问题我可以改·······
这是你所拥有的时间·····这是你所能改变的生活·········
2楼2011-12-15 08:39:47
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

qqhegg

荣誉版主 (文坛精英)

珊瑚小美-----小元家的九妹

优秀版主优秀版主

【答案】应助回帖

★ ★
感谢参与,应助指数 +1
微尘、梦想(金币+2, 程序强帖+1): 好久不见,有心了,祝好~ 2011-12-16 12:13:49
sangzhipei1178(金币+70): xiexie 2011-12-19 23:43:25
看一下可不可以,找人帮你写的呵呵呵
package thread;

class ShareData   
{   
        private char c;     
        private boolean isProduced = false; // 信号量   
       
        public synchronized void putShareChar(char c)  // 同步方法putShareChar()   
        {   
                if (isProduced)     // 如果产品还未消费,则生产者等待   
                {     
                        try   
                        {   
                                wait();        // 生产者等待   
                        }catch(InterruptedException e){   
                                e.printStackTrace();   
                        }   
                }   
                this.c = c;     
                isProduced = true;   // 标记已经生产   
                notify();             // 通知消费者已经生产,可以消费   
        }   
       
        public synchronized char getShareChar()  // 同步方法getShareChar()   
        {   
                if (!isProduced)    // 如果产品还未生产,则消费者等待   
                {      
                        try   
                        {   
                                wait();       // 消费者等待   
                        }catch(InterruptedException e){   
                                e.printStackTrace();   
                        }     
                }   
                isProduced = false; // 标记已经消费   
                notify();            // 通知需要生产   
                return this.c;   
        }   
}  


class Producer extends Thread     // 生产者线程   
{     
        private ShareData s;   
        Producer(ShareData s)   
        {   
                this.s = s;   
        }   
        public void run()   
        {   
                for (char ch = 'A'; ch <= 'D'; ch++)   
                {   
                        try   
                        {   
                                Thread.sleep((int)(Math.random()*3000));   
                        }catch(InterruptedException e){   
                                e.printStackTrace();   
                        }   
                        s.putShareChar(ch);  // 将产品放入仓库   
                        System.out.println(ch + " is produced by Producer.";   
                }   
        }   
}


class Consumer extends Thread    // 消费者线程   
{   
        private ShareData s;   
        Consumer(ShareData s)   
        {   
                this.s = s;   
        }   
        public void run()   
        {   
                char ch;   
                do{   
                        try   
                        {   
                                Thread.sleep((int)(Math.random()*3000));   
                        }catch(InterruptedException e){   
                                e.printStackTrace();   
                        }   
                        ch = s.getShareChar();    // 从仓库中取出产品   
                        System.out.println(ch + " is consumed by Consumer. ";   
                }while (ch != 'D');   
        }   
}  

public class CommunicationDemo   
{   
        public static void main(String[] args)   
        {   
                ShareData s = new ShareData();   
                new Consumer(s).start();   
                new Producer(s).start();   
        }   
}
每天都是新的一天,每天上帝都会给你不同的惊喜
3楼2011-12-16 11:11:29
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 sangzhipei1178 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[找工作] 售一区SCI文章T0P,我:8O.551.O54,科目全,可十急 +3 vZfe6xYu34yj 2026-09-15 3/150 2026-09-18 02:40 by cITaGg3p5edr
[硕博家园] 售SCI一区T0P文章,我:8.O55.1.O.54,科目全,可十急 +3 vZfe6xYu34yj 2026-09-14 3/150 2026-09-18 02:16 by cITaGg3p5edr
[硕博家园] 售SCI一区文章,我:8.O.551.O.5.4,科目全,可伽急 +5 s3fFTmArrBt6 2026-09-13 7/350 2026-09-17 23:28 by cuPZTDXS3VOd
[找工作] 售SCI一区T0P文章,我:8.O.55.1.O54,科目全,可伽急 +7 s3fFTmArrBt6 2026-09-13 8/400 2026-09-17 23:28 by cuPZTDXS3VOd
[硕博家园] 售一区SCI文章T0P,我:8O.551.O54,科目全,可十急 +7 LwdutQ8HoqWP 2026-09-13 7/350 2026-09-17 22:53 by cuPZTDXS3VOd
[公派出国] 售SCI一区T0P文章,我:8.O55.1.O.54,科目全,可十急 +8 QUjhNVAcOSff 2026-09-13 12/600 2026-09-17 22:15 by cuPZTDXS3VOd
[考博] 售SCI一区T0P文章,我:8O.55.1.O.5.4,科目齐全,可+急 +5 40ms4Wlo4umh 2026-09-14 5/250 2026-09-17 14:05 by ObVzqQQh1rrE
[硕博家园] 售SCI一区T0P文章,我:8.O.55.1.O54,科目全,可伽急 +4 23jxep3nCNZb 2026-09-14 4/200 2026-09-17 13:51 by ObVzqQQh1rrE
[找工作] 售SCI文章,我:8O.5.5.1O.54,科目全,可十急 +3 23jxep3nCNZb 2026-09-14 3/150 2026-09-17 13:39 by ObVzqQQh1rrE
[硕博家园] 售SCI一区T0P文章,我:8O.55.1.O.54,科目全,可伽急 +6 23jxep3nCNZb 2026-09-14 6/300 2026-09-17 13:27 by ObVzqQQh1rrE
[硕博家园] 售SCI一区文章,我:8.O.551.O.5.4,科目全,可伽急 +4 6F5UbRU2I5hL 2026-09-14 4/200 2026-09-17 13:15 by ObVzqQQh1rrE
[找工作] 售SCI一区文章,我:8.O.551.O.5.4,科目全,可伽急 +4 6F5UbRU2I5hL 2026-09-14 4/200 2026-09-17 13:05 by ObVzqQQh1rrE
[找工作] 售SCI一区T0P文章,我:8.O.55.1.O54,科目全,可伽急 +5 s3fFTmArrBt6 2026-09-14 6/300 2026-09-17 12:29 by ObVzqQQh1rrE
[找工作] 售SCI一区T0P文章,我:8.O.55.1.O.54,科目齐全,可+急 +4 mibUvS8DDCwf 2026-09-15 4/200 2026-09-17 06:26 by k06BKNblrGRH
[找工作] 售SCI一区T0P文章,我:8.O.55.1.O.5.4,科目全,可+急 +4 40ms4Wlo4umh 2026-09-14 4/200 2026-09-17 04:28 by k06BKNblrGRH
[找工作] 售SCI一区T0P文章,我:8.O.55.1.O54,科目全,可伽急 +6 s3fFTmArrBt6 2026-09-13 6/300 2026-09-17 02:14 by Tql5LQhh5rLK
[考博] 售SCI一区T0P文章,我:8O.55.1.O.5.4,科目齐全,可+急 +5 3n8v2C8RimXI 2026-09-13 5/250 2026-09-16 02:50 by DgNGHc3h5tPl
[考博] 售SCI文章,我:8O.5.5.1O.54,科目全,可十急 +7 3n8v2C8RimXI 2026-09-13 7/350 2026-09-16 02:35 by DgNGHc3h5tPl
[考博] 售SCI一区T0P文章,我:8O.55.1.O.5.4,科目齐全,可+急 +6 s3fFTmArrBt6 2026-09-14 7/350 2026-09-15 16:47 by CgyNCDVNhGVg
[教师之家] 售SCI一区文章,我:8.O.55.1.O.54,科目齐全,可伽急 +4 s3fFTmArrBt6 2026-09-13 4/200 2026-09-15 06:50 by 5BDX0d0WFp7t
信息提示
请填处理意见