进程和线程

进程和线程的区别

1、概念:进程是程序的一次动态执行,而线程是进程中执行的一段程序片段。

2、地址空间和其它资源:进程作为分配系统资源的基本单位,相互之间独立,包括内存空间和上下文环境;而线程作为独立运行和独立调度的基本单位,运行在进程空间内,同一进程的多个线程共享该进程的所有资源,但拥有自己的堆栈空间和执行序列。某进程内的线程在其它进程不可见。

3、调度和切换线程占有的资源很少,其上下文切换比进程上下文切换更高效,但不利于资源管理和保护,而进程正好相反

4、通信:进程间通信IPC,线程间可以直接读写进程数据段(如全局变量)来进行通信——需要进程同步和互斥手段的辅助,以保证数据的一致性。

在多线程OS中,进程不是一个可执行的实体,而线程是。


多进程和多线程的区别:

用多进程时每个进程都有自己的地址空间,多线程则是共享地址空间。所有其他区别也都由此而来,

1、速度快:线程产生的速度快,因为大部分资源都是共享进程的;线程间的切换速度快,因为线程体积小,只有自己的堆栈空间和执行序列;线程的通信速度快,因为共享内存。

2、资源利用率高:因为共享内存,所以利用率高

3、同步问题:因为共享内存,需要使用同步机制,不利于资源的管理和保护,而进程则相反







评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值