V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
tctc4869
V2EX  ›  Java

现在有关于处理生产者与消费者的轮子框架么?

  •  
  •   tctc4869 · 2020-07-30 14:47:56 +08:00 · 1348 次点击
    这是一个创建于 1595 天前的主题,其中的信息可能已经有所发展或是发生改变。

    要解决一个好像是类似生产者消费者的问题。

    需求被抽象如下,生产者,每过几秒会发送数据,需要进行堆积,当堆积到一定大小时,然后全部拿出来(拿出来是后请求提交数据或存入文件或放入数据库)。这个好像是生产者与消费者问题的一个体现

    我的思路是增加一个缓存容器,放到某个缓存容器缓存起来,缓存容器内部有两个集合字段,以及一个限定大小字段,put 方法和 takeAll 方法。

    不断放入数据到缓存里,当缓存容器内的集合 1 的元素数量大于限定大小时,调用 takeAll 方法把集合 1 全部拿出来。而在调用 takeAll 方法的期间内,新放入的数据会放入集合 2 字段里。当集合 1 的数据被全部拿出后,就检测集合 2 是否超出限定大小,如果超出就对集合 2 调用 takeAll 方法的迭代处理。新添加的数据就放入集合 1 。以此类推迭代。

    这个好像是叫叫什么双缓冲?是这样么?

    除了我想到的这个,还有哪些方法,另外现在有关于处理生产者与消费者的轮子框架么?

    Cbdy
        1
    Cbdy  
       2020-07-30 14:53:22 +08:00
    Disruptor?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5406 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 03:04 · PVG 11:04 · LAX 19:04 · JFK 22:04
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.