面试八股文攻略(六)——线程与进程

一、二者的区别

基本概念不同

进程是资源调度的基本单位
线程是系统调度的基本单位

包含范围不同

线程是进程的一个实体

开销不同

进程的创建撤销开销大
线程的创建撤销开销小
所以多线程的开销小,也方便并行。

并发性不同

多线程占用的内存少,成本也小。并行起来很方便,逻辑控制也简单。确保同步的加锁也很便捷。更适应多核 CPU,多个线程可以同时运行,上下文开销也会变小。
但多线程没有内存隔离,一个线程崩溃会导致整个程序崩溃。

多进程内存隔离,单个进程崩溃不会影响其他进程,调试方便。
但多进程成本较大,逻辑控制成本复杂,要和主程序交互。

二、进程通信

1. 管道

一个数据的缓冲区,进程在管道内存取数据。

2. 信号量

semaphore。本质是个共享锁,进程通过对这个信号量的操作来就行线程的分派

3. 消息队列

信号量只能告知事件的发生,消息队列可以通知事件内容

4. 共享内存

使用内存映射文件,这个要注意权限问题,不限制容易发生误操作。多进程可以同时访问

5. 套接口

socket

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值