进程
# 进程状态
- 运行态:占用CPU;
- 就绪态:CPU时间片分给其它进程,本进程暂时停止运行;
- 阻塞态:进程登台某一事件发生(如等待输入/输出操作完成)而暂时停止运行,即使拥有CPU控制权也无法运行;
- 创建状态:进程新被创建状态;
- 结束状态:进程销毁后的状态;
# 进程通信方式
管道
半双工通信方式,数据只能一个方向上流动;
效率低,不适合频繁交换数据;
进程两个文件描述符,一进一出;
信号
异步通信方式;
可以用于用户空间进程和内核进程之间交互;
消息队列
保存在内核的消息链表;
每个消息指定特定的消息类型,接收的时候不需要按照队列次序,而是可以根据自定义条件接收特定类型的消息;
共享内存
共享内存就是映射一段能被其他进程所访问的内存,这段共享内存由一个进程创建,但多个进程都可以访问;
信号量
信号量本质上是一个计数器,它和管道有所不同,它不以传送数据为主要目的,主要作为进程之间及同一种进程的不同线程之间的同步和互斥手段,它常作为一种锁机制,可以用来控制多个进程对共享资源的访问;
原理:PV操作
socket
# 一个进程可以创建多少个线程?
一个进程的虚拟内存是4G,内核分走1G,留给用户3G,创建一个线程10M内存,最多可以创建300个线程;