【问题标题】:How to handle more users (with own accounts) for Android Application? Multithreading?如何为 Android 应用程序处理更多用户(拥有自己的帐户)?多线程?
【发布时间】:2014-04-28 07:53:37
【问题描述】:

我有一个 Android 应用程序和一个服务器进行维护。我的应用程序有一个一次性注册过程,用户必须添加一个唯一 ID。对于这个唯一的 ID,用户从服务器获取他的数据。服务器从另一个 Web 服务获取这些数据。

应用程序 -> 对应用程序服务器的数据请求 -> 对其他 Web 服务的请求 -> 从 Web 服务到应用程序服务器的响应 -> 从应用程序服务器到应用程序的响应

现在这仅适用于一个用户,但现在它必须适用于更多用户或分别适用于无数用户。而且我不知道该怎么做。

它是否适用于多线程?我为每个用户创建一个自己的线程?或者我该如何处理这个并行工作并且每个用户都可以在需要时获取他的数据。

谁能帮帮我?

【问题讨论】:

  • 您是在这里尝试多线程 Android 还是运行 Android 的服务器? Android 如何进入您正在考虑的解决方案?
  • 我有一个 Android 应用程序,这个应用程序只使用 java 服务器,用户从那里获取数据。
  • 所以你需要写的解决方案可以和任何东西对话。
  • 我不明白。什么意思?
  • 无限量的用户?你在为谷歌工作吗?真正的问题是每秒有多少并发用户?请不要告诉我们“无穷无尽的数量”。一个典型的会话多长时间?您的服务器一次可以处理多少个会话?还有,那是什么数据?是否可以缓存其中一些数据(在中间服务器或设备本身上)?还是在多个用户之间共享?

标签: java android multithreading user-management


【解决方案1】:

它的服务器端问题,与android无关。 为此,请确保您的服务器代码能够一次处理多个请求。

【讨论】:

  • 是的,但我想知道如何处理这多个请求?这样我的应用程序就可以为无数的用户工作,并且每个用户都可以在需要时获得自己的数据。
  • 通常所有请求在服务器上按顺序处理,因此如果您在服务器上请求多次或来自多个用户的多次请求,所有这些请求都按顺序执行,如果您希望它并行,那么您必须在处理器级别上工作
  • 是的,它应该按顺序工作。我必须使它成为多线程,是吗?
【解决方案2】:

我建议你看看netty。它专为灵活性和可扩展性而设计,即使您自己编写,您也应该了解它的工作原理。

它可以处理数以万计的连接,是高效编写多线程应用程序的良好开端。

关于如何编写多线程应用程序,我建议您阅读Java Concurrency in Practice。如果您今年只读过一本 Java 书籍,请确保您已经阅读过这本。

【讨论】:

  • 是的,看起来不错。但是我的应用程序的功能理论上已经完成,但它只适用于一个用户。但现在它应该适用于无穷无尽的用户,而我的问题是如何处理更多并行工作的用户。
  • @aut_silvia 您将不得不重新开始,因为您无疑会做出对多个用户无效的假设。如果说有十年编写多线程应用程序的经验,您可能不需要重新编写它,但如果您没有这么多经验,我可以建议尝试逐步更改现有程序很多 比只写一遍更难。
  • @aut_silvia 考虑这个例子,你有一家咖啡店,你已经学会了如何一次为一个人煮咖啡,你现在想知道如何一次为所有人煮一千杯咖啡全世界。那是完全不同的业务。了解如何编写多线程程序可能是拥有 5 到 10 年商业经验的开发人员认为最具挑战性的事情,不要低估它的难度。
  • 好吧,你也许是对的。但我的问题是关于它,如何使它成为处理多个用户和请求的最佳方式。但我从你的回答中发现是用多线程来做到这一点,是吗?
  • 答案是否定的。多线程不应该是您扩展服务器实例时首先考虑的事情(通常,多线程将用作处理您的问题的更大解决方案的一部分,但从研究多线程开始是错误的如果您刚刚开始解决此问题,请使用方法)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-08-14
  • 1970-01-01
  • 1970-01-01
  • 2011-09-27
相关资源
最近更新 更多