Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/182.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android将数据发送到其他线程队列_Java_Android - Fatal编程技术网

Java Android将数据发送到其他线程队列

Java Android将数据发送到其他线程队列,java,android,Java,Android,我想生成一些通过TCP套接字发送的文本字符串。我在几分钟内就完成了。 然而,我想要一个生产者-消费者模式。我不在乎它是否失败。 我是否应该为此在应用程序中创建一个阻塞队列?我应该创建一个服务吗? 请注意,我需要一个线程来管理此作业。创建一个LinkedBlockingQueue,生产者在其中添加数据。创建一个大约每秒触发一次的计时器。定时器的任务是通过电线发送消息 为此,生产者(生成消息的生产者)和消费者(Timer)都应该可以访问LinkedBlockingQueue)。计时器将删除链接锁定队

我想生成一些通过TCP套接字发送的文本字符串。我在几分钟内就完成了。 然而,我想要一个生产者-消费者模式。我不在乎它是否失败。 我是否应该为此在应用程序中创建一个阻塞队列?我应该创建一个服务吗?
请注意,我需要一个线程来管理此作业。

创建一个
LinkedBlockingQueue
,生产者在其中添加数据。创建一个大约每秒触发一次的
计时器。
定时器的任务是通过电线发送消息

为此,生产者(生成消息的生产者)和消费者(
Timer
)都应该可以访问
LinkedBlockingQueue
)。
计时器将删除
链接锁定队列的第一个元素,然后发送它


听起来不错?

如果这是一个短任务(如您所评论的),我建议将其作为后台线程放在
异步任务中。您可以单独控制这方面的任何内容,这将有助于您调试它<代码>服务更适合于长时间执行的任务,因此我不建议在这个范围内使用它(甚至与其他
活动
通信也有点困难。您可以找到
异步任务
的文档,这里是一个示例


阻塞结构取决于您的需要-但我认为您在您的情况下不需要它。无论如何,如果您需要它,您可能会发现有很多线程安全的数据结构可以使用,您可能会觉得很有用。

此任务是“短任务”吗任务,意思是开始的时间很短,完成任务后就结束了?它在时间上是未知的,或者可能是永远的持续时间?如果有网络连接,它最多需要30-1000毫秒。如果重试几次会出现问题。但我想在重试几次后放弃它。现在听起来其实不是很好。一个
ArrayList
既不是inte,也不是inte不希望在线程之间共享,也不希望在生产者-消费者模式中使用,例如@zapl我自己就是一名学习者。我应该使用
LinkedBlockingQueue
,而不是
ArrayList
?Rest保持不变?=)是的,因为这就是阻塞队列的用途。它们允许任何线程排队(生成)另一个(甚至多个)使用者线程接收的数据。它们是线程安全的。使用
ArrayList
时,您必须进行大量复杂的同步,才能使其安全快速。本质上,这里提到的任何子类都应该有效。@zapl哈哈!我来这里是为了回答别人的问题,我自己也学到了一些新东西!!Hm那么即使我退出活动,asynctask也会运行吗?嗯,我认为这可能不会像我所需要的那样工作,因为如果有东西被发送,服务器会阻塞其他tcp传入连接,所以它会严重失败。理想情况下,我希望采用集中的方法。@Parhs您到底想做什么?AsyncTask实际上是线程,因此它将一直运行到必须运行为止,与您的活动无关。它开始工作,然后退出。因为它们是线程,所以你没有阻止任何东西,你可以定义一个传入套接字和一个传出套接字,两者同时工作(我在许多应用程序中使用)。只要有足够的bandwith来处理tcp套接字,就可以声明任意数量的tcp套接字。