首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Android中进程、活动、线程和任务的区别

Android中进程、活动、线程和任务的区别
EN

Stack Overflow用户
提问于 2017-06-20 11:01:23
回答 3查看 3.6K关注 0票数 3

上述各点之间有什么区别?我发现各种帖子很有帮助,但也很令人困惑。简而言之,根据我的理解,这就是我的观点:

  • 线程是共享相同资源的任务。
  • 进程是具有独立资源的任务。进程可以有多个线程。
  • 任务是正在执行的指令。
  • 这就是我困惑的地方。在android系统中,这三项活动是如何相关的。活动可以有多个任务,所以它必须类似于一个进程。但是,活动和过程之间有什么区别呢?此外,我在某个地方读到,任务是一堆活动。这让我很困惑。我还读到,所有的活动都运行在UI线程上,这只会使区别更加混乱。
EN

Stack Overflow用户

回答已采纳

发布于 2017-06-20 12:42:18

您应该区分进程&线程与活动与任务。他们甚至不属于同一类别。

让我们从最简单的一个开始,Task的。假设您没有谈论任何实际的类,即TimerTask,任务的基本概念如下。当用户第一次启动应用程序时,将创建一个新任务。您可以通过按下"OverviewButton“(由软件按钮的正方形表示)来看到这一点。(在Android5.0中,一个更高的任务将不会被释放,除非用户实际将其从概述屏幕上删除(左/右)。因此,任务实际上只是用户的一个高级抽象。正如您所提到的,任务有一个活动后台,它只是一个正常的堆栈,用于跟踪用户的“历史记录”。例如,您的应用程序被启动,您的MainActivity将位于堆栈的底部,用户输入一些值,然后继续进行一个新的活动。现在,这个新的活动高于上一个活动,用户可以在任何时候按下“后退”按钮--希望--随时返回到之前的活动。

现在对于 process &Thread的来说,安卓下的进程非常类似于linux,您的应用程序通常只能在一个进程内工作。如果您熟悉像C这样的语言,那么进程就会被OS分配到内存的某一部分,试图访问不属于您的进程的内存将导致“分割错误”。

正如您所说的,假设操作系统能够管理所需的开销,一个进程可能有任意数量的线程。一个进程至少会有一个线程,在android下这被称为或UI-Thread。线程,基本上,允许您并行地做一些工作。您很可能需要使用它们,例如,在执行网络操作时。

现在对于Activities来说,它们与多线程没有直接关系。当前的“活动活动”是在UI-线程上运行的活动。因此,它的所有回调都将在UI-Thread上运行,除非有明确的文档说明没有。活动是android框架使用的一种抽象,它存在于一个与进程&线程( Thread )根本不同的层次上,您可以从任意线程调用活动中定义的方法。

票数 8
EN
查看全部 3 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44651226

复制
相关文章

相似问题

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