要解决一个好像是类似生产者消费者的问题。
需求被抽象如下,生产者,每过几秒会发送数据,需要进行堆积,当堆积到一定大小时,然后全部拿出来(拿出来是后请求提交数据或存入文件或放入数据库)。这个好像是生产者与消费者问题的一个体现
我的思路是增加一个缓存容器,放到某个缓存容器缓存起来,缓存容器内部有两个集合字段,以及一个限定大小字段,put 方法和 takeAll 方法。
不断放入数据到缓存里,当缓存容器内的集合 1 的元素数量大于限定大小时,调用 takeAll 方法把集合 1 全部拿出来。而在调用 takeAll 方法的期间内,新放入的数据会放入集合 2 字段里。当集合 1 的数据被全部拿出后,就检测集合 2 是否超出限定大小,如果超出就对集合 2 调用 takeAll 方法的迭代处理。新添加的数据就放入集合 1 。以此类推迭代。
这个好像是叫叫什么双缓冲?是这样么?
除了我想到的这个,还有哪些方法,另外现在有关于处理生产者与消费者的轮子框架么?
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.