转自:https://blog.csdn.net/lijingshan34/article/details/70244142
https://www.zhihu.com/question/371492817
https://blog.csdn.net/yaosiming2011/article/details/44280797
多进程
使用多进程, 子进程结束以后, 内核会负责回收资源
使用多进程, 子进程异常退出不会导致整个进程Thread退出. 父进程还有机会重建流程.
一个常驻主进程, 只负责任务分发, 逻辑更清楚.
多进程方式更加稳定,另外利用进程间通信(IPC)也可以实现数据共享。
共享内存,这种方式和线程间读写变量是一样的,需要加锁,会有同步、死锁问题。
消息队列,可以采用多个子进程抢队列模式,性能很好
多线程
线程是在同一个进程内的,可以共享内存变量实现线程间通信
线程比进程更轻量级,开很大量进程会比线程消耗更多系统资源
多线程也存在一些问题:
线程读写变量存在同步问题,需要加锁
锁的粒度过大存在性能问题,可能会导致只有1个线程在运行,其他线程都在等待锁
同时使用多个锁,逻辑复杂,一旦某个锁没被正确释放,可能会发生线程死锁
某个线程发生致命错误会导致整个进程崩溃
更多精彩内容:各种AI课程、技能课程、黑科技软件、网站小程序源码、副业小项目、PPT模板等精品素材、电商课程、推广引流课程等,尽在 天边资源网 。