5. 理解进程线程有啥用
[问题一: 我为什么要去了解进程线程, 对我有什么影响]
我们把多线程吹了一通, 搞得好像一个Process/多个Thread能解决所有情况一样, 其实各种进程模型都会有自己的优缺点, 搞懂了各种模型的优缺点, 你就知道你的App在你的使用场景下应该怎么选, 这其实也回答了"了解进程线程模型有什么用"这个问题. 只有正确了解进程/线程的优缺点, 等你写App的时候你就知道怎么选了
[问题二: 进程线程优缺点是什么 / 区别是什么]
进程好在哪儿:
多进程的好处在于如果一个进程出问题了 / 或者直接挂了, 不会影响其他进程, 直接重启它就好了. 而线程模型里, 你不能单独重启某一个线程, 而且线程卡住了其他线程全都卡住了. 为了实现隔离的效果, nginx的aster进程负责收集任务, 容易出错的干活过程交给slave进程去做
资源上比如文件操作的fd, fd是按照进程去分配的, 这也就导致如果一个进程处理fd出现问题阻塞了不会影响其他进程对于这个文件的操作
线程好在哪儿:
上下文切换比较方便省事, 很多比如PCB之类的信息不用重新加载
通信方式上不像进程一样ipc, 直接共享内存就可以搞定了, 效率
Last updated
Was this helpful?