密集cup任务,需要充分利用cpu资源(服务器,大量的并行运算)的时候,用多进程。 缺陷:多个进程之间通信成本高,切换开销大。
密集I/O任务(网络I/O、磁盘I/O、数据库I/O),使用多线程合适。 缺陷:同一个时间片只能运行一个线程,不能做到高并行。
在单个线程上执行多个任务,用函数切换,开销很小。 缺陷:单线程执行,处理密集cpu和磁盘IO时,性能很低。处理网络IO性能很高。
进程、线程、协程的区别
原文:https://www.cnblogs.com/wangshx666/p/12766536.html