在业务逻辑上:
进程线程没有区别。
在系统资源上:
进程拥有自己的地址空间。线程拥有自己的堆栈和临时变量,与其他线程共享地址空间。
在通信代价上:
线程间通信代价更低,实现更方便。进程通信相对开销比较大。
其他:
进程隔离性更好。可以跨设备部署。多进程维护性更好,调试方便。多线程效率更好。
优先选用场景:
逻辑划分清晰,无交互或少交互的,有分布式部署要求的。性能与硬件资源线性相关的。应优先选用多进程。
逻辑不独立,耦合比较强。频发数据交互。有主从管理逻辑。应优先选用多线程。