多线程的最主要优点是:共享数据方便(都在一个地址空间,不需要IPC);可移植性好。
多进程的最主要优点是:可靠性较高(进程间彼此隔绝,一个进程被OOXX不会影响其他进程);能够在外部监控(因为进程是操作系统分配资源的对象)。
开发难度:多线程比较简单,因为不用去搞体位繁多的IPC,故不容易被不熟悉的API阴到。
调试难度:都很麻烦,是开发者的噩
梦。所以需要多些单元测试,多测试,多做日志,少调试。
对于选择的建议:
需要能工作在windows => 多线程
线程/进程间没有什么需要共享的数据 => 多进程优先,反之多线程优先。需要共享的数据越多越复杂,多线程得分越高。
对可靠性要求高 => 取决于开发团队,无数优秀产品证明多线程程序可以坚如磐石,但未必每个团队都能做到。
需要监控单个工作者占用的资源 => 多进程
开始学习并发编程 => 多线程,学习曲线较低,要掌握的API较少
多线程vs多进程
最新推荐文章于 2020-04-19 11:28:07 发布