pdf 下载地址
linux系统I/O模型
阻塞I/O
: 依次排队等待,直到获取到IO事件的执行权限非阻塞I/O
: 等待期间可以处理其它任务,需要主动检查IO事件是否就绪I/O多路复用
: 等待期间可以处理其它任务,等待广播通知IO事件是否就绪
进程与线程的区别
对比维度 | 进程 | 线程 | 总结 |
---|---|---|---|
包含关系 | 一个进程包含一个或多个线程 | 线程是进程的一部分 | 进程包含线程 |
资源开销 | 拥有独立的程序上下文和内存地址空间,切换开销大 | 共享程序上下文和内存地址空间,切换开销小 | 线程占优 |
可靠性 | 一个进程崩溃不会影响其它进程 | 一个线程崩溃将导致整个进程挂掉 | 进程占优 |
通信实现 | IPC(Inter-Process Communication) | 全局变量+锁 | 线程占优 |
进程间通信的实现原理
共享存储(通过
共享内存
):消息传递(通过
消息中间件
):管道通信(通过
共享文件
):
死锁的产生和处理方式
死锁产生的条件:
互斥条件
:一个资源每次只能被一个进程使用。不可剥夺条件
:进程已获得的资源,在末使用完之前,不能强行剥夺。请求和保持条件
:一个进程因请求资源而阻塞时,对已获得的资源保持不放。循环等待条件
:若干进程之间形成一种头尾相接的循环等待资源关系。
死锁的处理方式:
文档更新时间: 2024-04-20 10:57 作者:lee