阻止队列使用方案

时间:2016-02-04 18:41:23

标签: java multithreading queue blocking blockingqueue

我正在进行一项设计,我正在处理catch块中捕获的所有异常,以通过webservice调用发送到服务器。

这个想法不是在完成这项工作时完全阻止主应用程序。我觉得阻塞队列模式适合它。因此,我使用大小为10的数组实现创建了一个阻塞队列。在主应用程序的开头,我正在初始化此队列的使用者线程。

但是,制作人对我来说有点困惑。根据我的理解,如果队列已满,如果主应用程序遇到异常,则执行producer.put(object)将被阻塞,直到队列有空间,因此主应用程序也会阻塞。是正确的理解吗?

2 个答案:

答案 0 :(得分:0)

是的,你是对的。这是一个非常有用的table of BlockingQueue methods 通常有一个有界队列是好的,但限制不应该很低。

答案 1 :(得分:0)

我认为,您应该将您的例外写入手机存储(如果是Android的SharedPreferences),而不是保留在主内存中。 首先,它不会阻止您的主应用程序。

在网络连接回叫中,启动一个将从共享首选项中读取并将其发送到服务器的线程。