多线程总结之旅(1):线程VS进程

1、进程:进程是具备必定独立功能的程序关于某个数据集合上的一次运行活动,也就是应用程序的执行实例,进程是系统进行资源分配和调度的一个独立单位。每一个进程是由私有的虚拟地址空间、代码、数据和其它各类系统资源组成,进程在运行过程当中建立的资源随着进程的终止而被销毁,所使用的系统资源在进程终止时被释放或关闭。函数

2、线程: 线程是程序中的一个执行流,一个进程中能够包含多个线程,每一个线程都有本身的专有寄存器(栈指针、程序计数器等),但代码区是共享的,即不一样的线程能够执行一样的函数。线程

3、关系:指针

  通常来讲,一个独立的程序运行时就会产生一个进程,而一个进程中能够包括多个线程,分别执行不一样的功能。进程

4、区别:资源

  1.地址空间和其它资源:进程间相互独立,同一进程的各线程间共享。某进程内的线程在其它进程不可见。同步

  2.通讯:进程间通讯IPC,线程间能够直接读写进程数据段(如全局变量)来进行通讯——须要进程同步和互斥手段的辅助,以保证数据的一致性。变量

  3.调度和切换:线程上下文切换比进程上下文切换要快得多。(不少地方常常出现“上下文”这个词,其实你能够这样理解:上下文其实就是线程或者进程运行时须要的资源和堆栈等信息)。程序

相关文章
相关标签/搜索