加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

内存 – scala邮箱大小限制

发布时间:2020-12-16 09:22:20 所属栏目:安全 来源:网络整理
导读:我可以为Scala中的演员邮箱设置最大大小吗? 采取生产者 – 消费者问题.使用线程,当缓冲区填满时,我可以阻止生产者.我看到了几个使用Scala编写的生产者消费者示例,他们都使用作为“缓冲区”的邮箱的演员.我可以设置邮箱大小,使生产者等到消费者准备好了吗?
我可以为Scala中的演员邮箱设置最大大小吗?

采取生产者 – 消费者问题.使用线程,当缓冲区填满时,我可以阻止生产者.我看到了几个使用Scala编写的生产者消费者示例,他们都使用作为“缓冲区”的邮箱的演员.我可以设置邮箱大小,使生产者等到消费者准备好了吗?任何其他优雅的解决方案,以避免不可控制的邮箱增长?

解决方法

您可以创建一个作为生产者和消费者之间的缓冲区的actor.缓冲区将其邮箱检出到其循环数据.当缓冲产品的数量太高时,它向生产者发回一个“过载”消息;并且一旦所有事情都按顺序发送一个“清除”信息.如果邮件太多,它只会丢弃传入的邮件(或最旧的邮件).

消费者积极地从缓冲器请求产品,而缓冲器又产生一个产品.如果缓冲区为空,则消费者继续等待输入.

生产者将产品发送到缓冲区actor.如果收到“过载”消息,可以停止生产,或者可以继续生产,知道产品可能会丢失.

当然,这个逻辑可以直接实现到生产者或消费者本身,但单独的缓冲区可以让您更容易地引入多个生产者和/或消费者.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读