进程和线程的关系:
一个线程只能属于一个进程,而一个进程可以有多个线程,但至少有一个线程
资源分配给进程,同一个进程的所有线程共享该进程的所有资源
线程在执行过程中,需要协作同步,不同进程的线程间要利用消息通信的方法实现同步
线程是进程程序内的一个执行单元,也是进程内可调度的实体
进程和线程的定义:
进程是具有一定独立功能的程序关于摸个数据集合上的一次运行活动,是系统进行资源分配和调度的独立单位
线程是进程的一个实体,是cpu调度和分派的基本单位,比进程更小的独立运行的基本单位,线程基本上不占用系统的资源,只拥有一点在运行中必不可少的资源,一个线程可以创建和撤销另一个线程
进程和线程的区别:
调度:线程作为调度和分配的基本单位,进程作为拥有资源的的基本单位
并发性:进程之间可以并发执行,同一个进程的多个线程之间可以并发执行
拥有资源:进程拥有资源的独立单位,线程不拥有系统资源,但可以访问所隶属的进程的资源
进程和线程的优缺点:
在创建或者撤销进程的时候,由于系统都要为其分配和回收资源,导致系统明显大于创建或者撤销线程的开销。
进程有独立的地址空间,进程崩溃之后,在保护模式下不会对其他进程产生影响,而线程只是一个进程中的不同的执行路径,虽然线程有自己的堆栈和局部变量,但线程之间没有独立的地址空间,一个线程死掉就会引起整个进程的死掉,所以多进程的程序要比多线程的程序要健壮。
进程切换耗费的资源较大,效率要差些。
线程的划分尺度小于进程,所以多线程程序的并发性高。
进程在执行程序的过程中拥有独立的内存单元,而多线程共享进程内存,从而大大提高程序的运行效率
原文:http://www.cnblogs.com/jsh-tianshi/p/3747402.html