进程和线程的区别

【进程和线程的区别】  1、进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位. 
线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位.线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),但是它可与同属一个进程的其他的线程共享进程所拥有的全部资源. 
一个线程可以创建和撤销另一个线程;同一个进程中的多个线程之间可以并发执行 
2、进程和线程的区别在于: 
 简而言之,一个程序至少有一个进程,一个进程至少有一个线程. 
线程的划分尺度小于进程, 使得多线程程序的并发性高 。  
另外, 进程在执行过程中拥有独立的内存单元, 而多个线程共享内存, 从而极大地提高了程序的运行效率 。  
线程在执行过程中与进程还是有区别的 。 每个独立的线程有一个程序运行的入口、顺序执行序列和程序的出口 。 但是线程不能够独立执行, 必须依存在应用程序中, 由应用程序提供多个线程执行控制 。  

进程和线程的区别


从逻辑角度来看, 多线程的意义在于一个应用程序中, 有多个执行部分可以同时执行 。 但操作系统并没有将多个线程看做多个独立的应用, 来实现进程的调度和管理以及资源分配 。 这就是进程和线程的重要区别 。
 什么是进程(Process):普通的解释就是, 进程是程序的一次执行, 而什么是线程(Thread), 线程可以理解为进程中的执行的一段程序片段 。 在一个多任务环境中下面的概念可以帮助我们理解两者间的差别:  
 
进程间是独立的, 这表现在内存空间, 上下文环境;线程运行在进程空间内 。  
一般来讲(不使用特殊技术)进程是无法突破进程边界存取其他进程内的存储空间;而线程由于处于进程空间内, 所以同一进程所产生的线程共享同一内存空间 。  
同一进程中的两段代码不能够同时执行, 除非引入线程 。  
线程是属于进程的, 当进程退出时该进程所产生的线程都会被强制退出并清除 。  
线程占用的资源要少于进程所占用的资源 。  
进程和线程都可以有优先级 。  
在线程系统中进程也是一个线程 。 可以将进程理解为一个程序的第一个线程 。

    推荐阅读