如题想要自己写个Demo模拟经典生产者消费者的线程并发问题假设生产端速度较快,产品到一定数量时,停止生产消费端速度较慢,在产品数量为0时,停止消费郁闷的是, scala 的 actor 中 receive 貌似只是机械地等待,而不是像 java 中的阻塞所以 生产者 和 消费者 两个线程如何通信,如何判断边界的问题,很纠结我就暂时不贴自己的代码,希望有大牛来指点迷津,如何思考这个问题,建立清晰的线程模型,逻辑怎么走随便说说,有分必给

解决方案 »

  1.   

    你用 Scala 来写,还是 Java 来写?
      

  2.   

    呵呵,可惜我不会 Scala 呢 :)
      

  3.   


    额- -!
    Scala 还不错呵
      

  4.   

    我也会scala不过原型设计和具体语言关系不是非常的大如果有必要,可以离开语言来谈这个问题
      

  5.   


    那我直接点,求scala实现代码
      

  6.   

    我初学者,不知道scala,但我最近写过类似的程序,我用多线程。
    线程1:(生产者,较快)
    public void run(){
    while(true){
    if(ready){生产;}
    else sleep(若干毫秒,这个值参考消费者时间,比其小得多,要自己调试);
    }
    }
    线程2:(消费者,较慢)
    public void run(){
    Thread thread1 = new Thread1();//生产者线程
    thread1.start();//启动生产者线程 
    while(true){
    boolean ready = false;
    从生产者取产品;
    消费
    boolean ready = true;
    sleep(若干毫秒,这个值参考生产者时间,比其略大,要自己调试);
    }
    }
    调用的后,只要启动线程2(消费者)即可。
      

  7.   

    你可以看看这篇
    面向 Java 开发人员的 Scala 指南: 深入了解 Scala 并发性
      

  8.   


    java 和 scala 的实现是不一样的不过还是谢谢了~~~