客户端使用UDP协议不停的向服务器发送数据,Java这边需要存储这些数据并进行处理,如何监控这个数据?
java这边是将这些数据存放到一个队列当中,如:Queue,并且,在Java第一次接收到数据后开始处理,如何监控这个Queue,保证数据不丢失?...
java 这边是将这些数据存放到一个队列当中,如:Queue,并且,在Java第一次接收到数据后开始处理,如何监控这个Queue,保证数据不丢失?
展开
1个回答
展开全部
2个方法,设置2个变量分别记载当前处理的queue下标A,(假设你的queue是结构体数组长度200),还有个表量记载还没有操作的总数B。
1.保证每个数据都接收。即时没有处理完也接收,循环加,从0-199再循环,另一个线程处理,从当前标记A开始往下处理,没处理完一个A+1 B-1,接收线程没接收一个B+1,B一直循环,QUEUE[B]接收数据,一定要注意,这2个变量和你的数组要加锁,防止2个线程同时被修改
2.保证处理,如果没处理完就不接收,加到B到上限就停止,但数据也是循环的存储,其他方法和上面一样,就是要注意加锁
以上说的方法是数据先进先出,如果想做先进后出的话,就每次处理当前A的数据,然后向前回溯就可以了
1.保证每个数据都接收。即时没有处理完也接收,循环加,从0-199再循环,另一个线程处理,从当前标记A开始往下处理,没处理完一个A+1 B-1,接收线程没接收一个B+1,B一直循环,QUEUE[B]接收数据,一定要注意,这2个变量和你的数组要加锁,防止2个线程同时被修改
2.保证处理,如果没处理完就不接收,加到B到上限就停止,但数据也是循环的存储,其他方法和上面一样,就是要注意加锁
以上说的方法是数据先进先出,如果想做先进后出的话,就每次处理当前A的数据,然后向前回溯就可以了
Storm代理
2023-06-05 广告
2023-06-05 广告
StormProxies是全球大数据IP资源服务商,其住宅代理网络由真实的家庭住宅IP组成,可为企业或个人提供满足各种场景的代理产品。点击免费测试(注册即送1G流量)StormProxies有哪些优势?1、IP+端口提取形式,不限带宽,IP...
点击进入详情页
本回答由Storm代理提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询