将不同尺寸的物品排队'

时间:2017-08-30 08:47:28

标签: python multithreading queue

我遇到的问题是,我的处理速度比我处理必要的结果要快(错误纠正很慢)

我认为最好的方法是将流排队并在准备好后删除它的块。在将其放入队列之前,我会做一些非常快速的处理以确定块的大小。

当我尝试从队列中删除块时,所有关于它的大小的信息都已丢失,而q.get()只返回放在队列中的最后一个块的大小(不会是与原始块相同的大小)。这是一个问题,因为处理根据它们在比特流组块中的位置来剥离和移除数据的比特。因此,如果块较短,则删除错误的位,并且包含的​​信息将丢失。

那么如何使用q.get()来提取正确大小的项目'从队列?

这是我的简化代码(但没有用):

    using (var db = new MyContext(ConnectionString))
        {
            var res = db.Device.Find(ID);
        }

如果比特流遇到大小为5,4,3,2和1的块,结果如下:

- 如果输入速度很慢,那么队列中永远不会有多个项目,输出块大小为5,4,3,2,1。

- 如果输入速度很快以便队列增长,则输出块大小类似于3,1,1,1,1。

1 个答案:

答案 0 :(得分:0)

发现错误!错误的命名约定是问题,我最终使用全局变量数据流而不是存储的数据流。遗憾