记一次蚂蚁金服的面试经历( 九 )

首先进程是资源分配的最小单元,线程是任务调度的最小单元

对比维度 多进程 多线程 总结

数据共享、同步 数据共享复杂,需要用IPC;数据是分开的,同步简单 因为共享进程数据,数据共享简单,但也是因为这个原因导致同步复杂 各有优势

内存、CPU 占用内存多,切换复杂,CPU利用率低 占用内存少,切换简单,CPU利用率高 线程占优

创建销毁、切换 创建销毁、切换复杂,速度慢 创建销毁、切换简单,速度很快 线程占优

编程、调试 编程简单,调试简单 编程复杂,调试复杂 进程占优

可靠性 进程间不会互相影响 一个线程挂掉将导致整个进程挂掉 进程占优

分布式 适应于多核、多机分布式;如果一台机器不够,扩展到多台机器比较简单 适应于多核分布式 进程占优

5、ThreadLocal的使用场景

ThreadLocal 适用于每个线程需要自己独立的实例且该实例需要在多个方法中被使用,也即变量在线程间隔离而在方法或类间共享的场景。

推荐阅读