线程和进程的区别,线程如何实现同步和通信,进程如何实现通信

线程和进程的区别

进程是系统资源分配最小的单位。
线程是程序执行最小的单位

进程有自己独立地址空间,每启动一个进程,系统都会为它分配地址空间,建立数据表来维护代码段、堆栈和数据块,这种操作非常昂贵。
线程是共享进程中的数据的,使用相同的地址空间,因此cpu切换到一个线程花费远比进程要小很多,同时创建一个线程的开销也比进程要小很多。

进程间的通讯较为复杂,使用:无名管道、有名管道、信号、共享内存、消息队列、信号量
线程间的通讯十分方便,因为使用的是共享全局变量、静态变量等数据,使用互斥量、读写锁、自旋锁、线程信号、条件变量

多进程运行时,单一进程死亡,并不会影响其他进程;
多线程运行时,单一线程死亡,会导致整个进程死亡。

进程之间不能对其他进程施加控制;
线程之间可以互相控制。

线程如何实现同步和通信

线程访通信可以通过:

全局变量
io通讯
自定义消息

同步通过使用下面的来控制:

互斥锁
信号量
临界区

进程如何实现通信

进程之间无法直接访问对方的内存,需要一个中间介质:

消息队列
管道
共享内存
套接字

参考资料

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值