如题想要自己写个Demo模拟经典生产者消费者的线程并发问题假设生产端速度较快,产品到一定数量时,停止生产消费端速度较慢,在产品数量为0时,停止消费郁闷的是, scala 的 actor 中 receive 貌似只是机械地等待,而不是像 java 中的阻塞所以 生产者 和 消费者 两个线程如何通信,如何判断边界的问题,很纠结我就暂时不贴自己的代码,希望有大牛来指点迷津,如何思考这个问题,建立清晰的线程模型,逻辑怎么走随便说说,有分必给
调试欢乐多
额- -!
Scala 还不错呵
那我直接点,求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(消费者)即可。
面向 Java 开发人员的 Scala 指南: 深入了解 Scala 并发性
java 和 scala 的实现是不一样的不过还是谢谢了~~~