进程和线程的区别

论坛 期权论坛 编程之家     
选择匿名的用户   2021-6-2 16:42   1714   0

定义:

进程是具有独立功能的应用程序在某个数据集上面的一次运行活动,是系统进行资源分配和调度的一个独立单位。

线程是进程的一个实体,是CPU调度和分配的一个单位,它是比进程小的能够独立运行的独立单元,线程是不拥有系统资源的,只拥有程序运行必不可少的资源(如程序计数器,寄存器和栈),但它可以与同属一个进程的其他线程共享进程的资源。

关系:

一个线程可以创建和销毁另外一个线程,同一进程的多个线程可以并行执行。

相对于进程,线程相当于执行体的概念,他与其他同属一个进程的多个线程共享数据,但是有自己的栈,有独立的执行序列。

区别:

操作系统管理方式不同,进程拥有独立的地址空间,一个进程崩溃后,在保护模式下不会影响其他进程,线程是同一进程的多个执行路径。

线程拥有自己独立的堆栈和局部变量,但是多个线程间没有独立的地址空间,一个线程死掉就等于一个进程死掉,所以多进程程序比基于多线程的程序健壮。

但是进程进行切换时,消耗资源比较大,效率要低一些。同时要求并行和共享数据时,只能用线程。

总结:

一个程序至少包含一个进程,一个进程至少包含一个线程。

线程的划分尺度小于进程,使得多线程程序并发性高。

进程拥有独立的内存,多个线程共享内存,从而提高了程序运行效率。

执行过程的区别:每个线程拥有程序的入口、程序的出口、顺序执行序列,但是线程不能够独立运行,必须依存在应用程序中,由应用程序提供多线程运行控制。

优缺点:

线程开销小,但不利于资源的管理和保护,进程相反。

线程适合在SMP机器上运行,进程可以跨机器运行。

http://blog.csdn.net/yaosiming2011/article/details/44280797/

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP