7 个解决方案
#1
可以使用两个缓冲区做乒乓式的采集处理模模式
#2
您好,能不能说的详细点啊,我领会不了您的意思,惭愧了。。。谢谢啊
#3
采集线程
1 采集A缓冲区 -> 采集满提交A缓冲区给处理线程,
2 采集B缓冲区 -> 采集满提交B缓冲区给处理线程,
3 返回1
处理线程
1 等待处理A, 处理A
2 等待处理B, 处理B
3 返回1
1 采集A缓冲区 -> 采集满提交A缓冲区给处理线程,
2 采集B缓冲区 -> 采集满提交B缓冲区给处理线程,
3 返回1
处理线程
1 等待处理A, 处理A
2 等待处理B, 处理B
3 返回1
#4
我明白您的意思了,就是说处理A缓冲区的时候,同时在将采集数据放到B缓冲区;处理B缓冲区的时候,同时将采集的数据放到A缓冲区。 这里是不是就不用考虑同步的问题了,因为没有对同一缓冲区进行操作.
#5
你就这么考虑,如果距离水龙头10米处有一口大缸,现在要你用水桶把缸装满水你会怎么操作
#6
您的意思是有两个桶了,那我的理解就是不用同步机制了,哈哈
#7
那如果要的是IdServer接收数据,我要用另一个线程来处理数据,那么我如何控制线程何时处理数据,因为idServer是每隔一会儿发过来,用这种方法肯定要同步。
#1
可以使用两个缓冲区做乒乓式的采集处理模模式
#2
您好,能不能说的详细点啊,我领会不了您的意思,惭愧了。。。谢谢啊
#3
采集线程
1 采集A缓冲区 -> 采集满提交A缓冲区给处理线程,
2 采集B缓冲区 -> 采集满提交B缓冲区给处理线程,
3 返回1
处理线程
1 等待处理A, 处理A
2 等待处理B, 处理B
3 返回1
1 采集A缓冲区 -> 采集满提交A缓冲区给处理线程,
2 采集B缓冲区 -> 采集满提交B缓冲区给处理线程,
3 返回1
处理线程
1 等待处理A, 处理A
2 等待处理B, 处理B
3 返回1
#4
我明白您的意思了,就是说处理A缓冲区的时候,同时在将采集数据放到B缓冲区;处理B缓冲区的时候,同时将采集的数据放到A缓冲区。 这里是不是就不用考虑同步的问题了,因为没有对同一缓冲区进行操作.
#5
你就这么考虑,如果距离水龙头10米处有一口大缸,现在要你用水桶把缸装满水你会怎么操作
#6
您的意思是有两个桶了,那我的理解就是不用同步机制了,哈哈
#7
那如果要的是IdServer接收数据,我要用另一个线程来处理数据,那么我如何控制线程何时处理数据,因为idServer是每隔一会儿发过来,用这种方法肯定要同步。