进程是程序执行时 的一个实例。是执行程序在一定数据集上运行的 过程。是一个过程。
是linux 系统分配资源的基本单位。
线程是进程的一个实体。是cpu调度和分派的基本单位。 它是比进程更小的能独立运行的基本单位。(能独立运行?)
进程和线程的区别在于:
简而言之,一个程序 至少有一个进程,一个进程 至少有一个线程。
线程的划分尺度小于进程,使得 多线程程序的并发性高。(并发性是指两个或多个事件在同一时间间隔 内发生。)
但是线程不能够独立执行,必须依存在应用程序中,由应用程序提供多个线程执行控制。
进程和线程的主要差别在于它们是不同的 操作系统资源管理方式。
进程有独立的地址空间,一个进程崩溃后,在保护模式下不会对其它进程产生影响。
线程只是一个进程中的不同执行路径。线程有自己的堆栈和局部变量,但线程之间没有单独的地址空间,一个线程死掉就等于整个进程死掉,所以多进程的程序要比多线程的程序健壮,但在 进程切换时,耗费资源较大,效率要差一些。但对于一些要求同时进行并且又要共享某些变量的并发操作,只能用线程,不能用进程。如果有兴趣深入的话,我建议你们看看《现代操作系统》或者《操作系统的设计与实现》。
进程——健壮了,资源消耗大。
线程——效率高了,稳定性差。
转自:
http://blog.csdn.net/jmq_0000/article/details/7187689
进程和线程的区别