我将每隔.01秒获得一个JSON字符串甚至更快,我必须将其插入到某个集合中,这样我以后可以遍历每一行并进行一些处理并在此之后删除该行.插入过程不断进行.我是否使用ArrayList或有点困惑Queue.
所以基本上我会插入第一个消息,然后插入第二个然后......同时另一个进程将读取第一个插入的值来处理和删除该记录,然后是第二个插入的值.请告知哪一个最快,存储量少?或者任何其他系列最符合我的要求?
编辑: 我有两种方法 -
GetMessages() - 继续在队列中获取/添加消息(此处消息仅从一个源接收,该源继续发送消息并且在我们手动停止该过程之前不会停止)
ProcessMessages() - 将读取队列记录并在处理后从队列中删除它们
Cod*_*ter 30
听起来你应该使用a ConcurrentQueue<string>,其中一个线程可以推送另一个线程可以弹出的值.
你仍然需要一些簿记代码来检查你的处理是否比插入运行得更快,否则你肯定会在某些时候耗尽内存.
Dmi*_*nko 21
您似乎正在寻找生产者 - 消费者设计模式(Wikipedia Producer-consumer_problem).
如果是你的情况,请尝试专门为此设计的BlockingCollection.
Pat*_*man 11
从我如何阅读你的问题,你基本上有两个要求:
我会使用ConcurrentQueue:它提供了你正在谈论的排队机制,它也是线程安全的,所以你可以同时添加和删除,而无需自己锁定队列.
如果没有确切的信息,哪一个是最好的性能和记忆力是很难说的.如果你有很多重复的字符串,你可以尝试实习它们或自己创建一个缓存重复元素的地方.
| 归档时间: |
|
| 查看次数: |
2056 次 |
| 最近记录: |