进程与线程的区别
来源:互联网 发布:淘宝借贷平台 编辑:程序博客网 时间: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
- 线程与进程的区别
- 线程与进程的区别
- 线程与进程的区别
- 进程与线程的区别
- 进程与线程的区别
- 线程与进程的区别
- 进程与线程的区别
- 进程与线程的区别
- 进程与线程的区别
- 线程与进程的区别
- 线程与进程的区别
- 进程与线程的区别
- 进程与线程的区别
- 进程与线程的区别
- 进程与线程的区别
- 进程与线程的区别
- 线程与进程的区别
- 进程与线程的区别
- emacs修改键盘映射
- 安装java,tomcat遇到的问题
- spring 和mybatis整合时 使用context:property-placeholder载不进属性 还报org.springframework.beans.factory.BeanCrea
- Launcher3源码浅析(5.1)--OverviewMode
- 设计模式——单例模式
- 进程与线程的区别
- C++编程基础笔记章节三
- http://liubin.org/promises-book/
- Android Studio 修改项目包名(Xposed)
- 一个简单的线程池(仿java的ScheduledFuture)
- 文件描述符的本质
- 事件分发之ViewGroup.dispatchTouchEvent(Android5.0)
- tomcat7-maven-plugin使用
- 用 Chrome 运行Android应用