美文网首页
进程与线程

进程与线程

作者: 兔子的眼睛 | 来源:发表于2016-09-12 21:55 被阅读0次

    进程与多进程都是什么?
    ->什么是进程?
    进程是操作系统结构的基础;是一个正在执行的程序;计算机中正在运行的程序实例;可以分配给处理器并由处理器执行的一个实体;由单一顺序的执行显示,一个当前状态和一组相关的系统资源所描述的活动单元。
    就像一个车间。而线程就相当于流水线
    ->什么是多进程?
    进程是程序在计算机上的一次执行活动。当你运行一个程序,你就启动了一个进程。显然,程序是死的(静态的),进程是活的(动态的)。进程可以分为系统进程和用户进程。凡是用于完成操作系统的各种功能的进程就是系统进程,它们就是处于运行状态下的操作系统本身;所有由用户启动的进程都是用户进程。进程是操作系统进行资源分配的单位。 进程又被细化为线程,也就是一个进程下有多个能独立运行的更小的单位。在同一个时间里,同一个计算机系统中如果允许两个或两个以上的进程处于运行状态,这便是多任务。现代的操作系统几乎都是多任务操作系统,能够同时管理多个进程的运行。 多任务带来的好处是明显的,比如你可以边听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应用的运行都是从主线程开始的。然而,主线程并非如线程般的预定执行序列。相反,它处于一个无限循环的运动状态,等待着用户或系统触发事件的发生。事件触发后,主线程便负责执行代码,以影响这些事件。如下图:

    一般线程与主线程.png

    * 图片来自于参考资料Android编程权威指南

    相关文章

      网友评论

          本文标题:进程与线程

          本文链接:https://www.haomeiwen.com/subject/mvnpettx.html