java - Android - 如何并行运行多个线程

标签 java android multithreading email parallel-processing

我正在开发一个使用 Gmail API 同步用户电子邮件的 Android 应用程序。

为此,我实现了两项服务,第一项用于下载未读电子邮件,第二项用于下载已读电子邮件。每个服务都实现 Runnable 接口(interface),用于检索电子邮件并将它们存储在数据库中的代码是使用 Run() 方法中的线程处理的。

一切正常,我遇到的唯一问题是,当负责下载已读电子邮件的线程正在运行时(比另一个线程花费的时间更长),第二个线程(同步未读电子邮件)被阻止,直到第一个线程完成。

我想知道是否有办法让第二个线程优先于第一个线程,所以每当第一个线程运行而第二个线程必须运行时,代码应该将第二个线程暂停到第一个线程一封(未读电子邮件)完成运行,然后恢复暂停的线程。

问候。

最佳答案

如果您想创建第二个运行时间很短的服务,我建议您学习 AsyncTask,但如果您希望创建一个持续运行的服务,则需要使用 java.util。并发 API(执行器、线程池执行器)。希望我有所帮助,但通过一些阅读,您可以获得更多关于多线程应用程序的知识。如果您需要更多帮助,请告诉我!

关于java - Android - 如何并行运行多个线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38191806/

相关文章:

java - Android 可编程粒子效果

android - 使用 Android 动画,情绪从中心向右滚动

android - 在 android 中显示正确的应用程序

Android HttpURLConnection 设置 GET 请求方法

C++11 我可以确保 condition_variable.wait() 不会错过通知吗?

multithreading - 将创建多少个进程和线程?

java - 加入超时的多个线程

java - 陷入数组的 for 循环(java)。 [i], [i+1],[i+2]

java - 如何在Spring Boot中使用客户端私钥和服务器提供的证书来调用服务器?

java - mvn混淆器: Is there possible obfuscate dependency before copying