首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android:连续SQL插入的阻塞队列还是非阻塞队列?

Android:连续SQL插入的阻塞队列还是非阻塞队列?
EN

Stack Overflow用户
提问于 2016-03-30 10:19:23
回答 1查看 561关注 0票数 0

我有一个应用程序,只要按下“开始”按钮,一项服务就会开始,它将轮询几个传感器,在传感器值变化时将传感器数据存储到某个对象中。每隔10 and,就会发生一次数据库插入,获取当前值的对象并将其存储到数据库中。这种情况会持续30分钟

考虑到插入的速度和持续时间,我希望在一个独立于UI线程的线程中运行它,这样导航就不会受到影响。因此,我的服务将向线程提供一些数据,将其添加到队列中,然后另一个线程(使用者)将从队列中取出并插入到数据库中。

当按下停止按钮时,我需要确保在关闭线程之前处理队列的其余部分。

似乎无论我看哪里,都建议在生产者/消费者类型的情况下(例如LinkedBlockingQueue对ConcurrentLinkedQueueLinkedBlockingQueue和ConcurrentLinkedQueue有什么不同?)使用某种阻塞队列。

我的问题是,在我的情况下,阻塞队列有意义吗?

最重要的在这个应用程序是所有的数据被插入到数据库。据我所知(如果我错了,请纠正我),但是如果队列已满,并且使用者线程不能足够快地插入以释放更多的队列空间,那么生产者将被阻止向队列中添加内容?如果这是正确的,那么到了有空闲空间的时间队列时,一些传感器读数就会过去,并且由于阻塞而不会插入到db中。

最后,我需要最好的方法来确保每10毫秒插入一次数据,而不跳过一次。在我看来,每隔10毫秒就将这些值转储到一些无限的、无限的队列中,并让消费者尽快投票。然后,当按下Stop时,在终止线程之前排出队列的其余部分。

那么,在1生产者/1消费者的情况下,正确的处理方法是什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-03-30 10:23:23

如果我是你,我会使用一个线程执行器来执行这个任务--它已经具备了你需要的功能。更多信息,这里

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36305943

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档