进程与多进程都是什么?
->什么是进程?
进程是操作系统结构的基础;是一个正在执行的程序;计算机中正在运行的程序实例;可以分配给处理器并由处理器执行的一个实体;由单一顺序的执行显示,一个当前状态和一组相关的系统资源所描述的活动单元。
就像一个车间。而线程就相当于流水线
->什么是多进程?
进程是程序在计算机上的一次执行活动。当你运行一个程序,你就启动了一个进程。显然,程序是死的(静态的),进程是活的(动态的)。进程可以分为系统进程和用户进程。凡是用于完成操作系统的各种功能的进程就是系统进程,它们就是处于运行状态下的操作系统本身;所有由用户启动的进程都是用户进程。进程是操作系统进行资源分配的单位。 进程又被细化为线程,也就是一个进程下有多个能独立运行的更小的单位。在同一个时间里,同一个计算机系统中如果允许两个或两个以上的进程处于运行状态,这便是多任务。现代的操作系统几乎都是多任务操作系统,能够同时管理多个进程的运行。 多任务带来的好处是明显的,比如你可以边听mp3边上网,与此同时甚至可以将下载的文档打印出来,而这些任务之间丝毫不会相互干扰。那么这里就涉及到并行的问题,俗话说,一心不能二用,这对计算机也一样,原则上一个CPU只能分配给一个进程,以便运行这个进程。我们通常使用的计算机中只有一个CPU,也就是说只有一颗心,要让它一心多用,同时运行多个进程,就必须使用并发技术。实现并发技术相当复杂,最容易理解的是“时间片轮转进程调度算法”,它的思想简单介绍如下:在操作系统的管理下,所有正在运行的进程轮流使用CPU,每个进程允许占用CPU的时间非常短(比如10毫秒),这样用户根本感觉不出来 CPU是在轮流为多个进程服务,就好象所有的进程都在不间断地运行一样。但实际上在任何一个时间内有且仅有一个进程占有CPU。 如果一台计算机有多个CPU,情况就不同了,如果进程数小于CPU数,则不同的进程可以分配给不同的CPU来运行,这样,多个进程就是真正同时运行的,这便是并行。但如果进程数大于CPU数,则仍然需要使用并发技术。 进行CPU分配是以线程为单位的,一个进程可能由多个线程组成,这时情况更加复杂,但简单地说,有如下关系:
总线程数<= CPU数量:并行运行
总线程数> CPU数量:并发运行
->进程如何创建?
->android:process
<service
android:name=".service.Myservice"
android:process="test"
android:enabled="true"
android:exported="true">
->进程的等级
->前台进程
->可见进程
->服务进程
->后台进程
->空进程
多进程
->什么情况下使用多进程?
->如何使用多进程?
->使用多进程需要注意哪些地方?
->进程与线程的区别
->初始化时进程
->进程间内存不足的不可见性
多进程间的通信IPC
->IPC(interprocess communication)
->为什么需要?
->内存不共享
->如何通信:
->系统实现
->Messenger→利用Handler
->AIDL:Android Interface definition language
->.Create your.aidl file
线程与主线程
线程是一个单一的执行序列。单个线程中的代码可以得到逐步执行。每个Android应用的运行都是从主线程开始的。然而,主线程并非如线程般的预定执行序列。相反,它处于一个无限循环的运动状态,等待着用户或系统触发事件的发生。事件触发后,主线程便负责执行代码,以影响这些事件。如下图:
* 图片来自于参考资料Android编程权威指南