进程与线程的区别

来源:互联网 发布:淘宝借贷平台 编辑:程序博客网 时间:2024/06/05 06:53

进程和线程的区别

  • 进程:
    进程是一个具有独立功能的程序关于某个数据集合的一次运行活动。它可以申请和拥有系统资源,是一个动态的概念,是一个活动的实体。它不只是程序的代码,还包括当前的活动,通过程序计数器的值和处理寄存器的内容来表示。
    进程是一个“执行中的程序”。程序是一个没有生命的实体,只有处理器赋予程序生命时,它才能成为一个活动的实体。
  • 线程:
    通常在一个进程中可以包括若干个线程,它们可以利用进程所拥有的资源。在引入线程的操作系统中,通常都是把进程作为分配资源的基本单位 ,而把线程作为独立运行和独立调度的基本单位。由于线程比进程更小,基本上不拥有系统资源,故对它的调度所付出的开销就会小得多,能更高效的提高系统内多个程序间并发执行的程度。
  • 区别:
    子进程和父进程有不同的代码和数据空间 ,而多个线程则共享数据空间,每个线程有自己的执行堆栈和程序计数器为执行上下文。多线程主要是为了节约CPU时间,发挥利用,根据具体情况而定。线程的运行中需要使用计算机的内存资源和CPU。
    a.地址空间和其它资源:进程间相互独立,同一进程的各线程共享。某进程 内的线程在其它进程不可见。
    b.通信:进程间通信IPC 【IPC(Inter-Process Communication,进程间通信)IPC ( Instruction per Clock 及CPU每一时钟周期内所执行的指令多少) IPC代表了一款处理器的设计架构,一旦该处理器设计完成之后,IPC值就不会再改变了。在这里,IPC值的高低起到了决定性的作用,而频率似乎不再高于一切。】 线程间可以直接读写进程数据段(如全局变量)来进行通信一一需要进程同步和互斥手段的辅助,以保证数据的一致性。
    c.调度和切换:线程上下文切换比进程上下文切换要快得多。
    d.在多线程OS中,进程不是一个可执行的实体。

进程具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位。线程是进程的一个实体,是CPU调度和分配的基本单位,它是比进程更小的能独立运行的基本单位。线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),但是它可与同属一个进程的其他的线程共享进程所拥有的全部资源。

  • 自己的理解:
    就好比QQ来说,打开任务管理器,会看见QQ这个进程,它是与其他进程独立的,它拥有系统资源,在这个进程里有很多的线程,它们不是独立的,比如就拿QQ聊天时来说,有的线程控制把消息加密,有的线程控制把消息发送出去,有的线程控制把消息记录下来等等,而进程可以控制这些线程执行的顺序,对这些线程所需的资源进行资源分配。
1 0
原创粉丝点击