更多 Java 并发编程方面的文章,请参见文集《Java 并发编程》
| | 多进程 | 多线程 | 总结 |
|---|---|
| 数据共享 | 数据共享复杂,需要用IPC | 数据共享简单 | 多线程占优 |
| 内存、CPU | 占用内存多,切换复杂,CPU利用率低 | 占用内存少,切换简单,CPU利用率高 | 多线程占优 |
| 创建销毁、切换 | 创建销毁、切换复杂,速度慢 | 创建销毁、切换简单,速度快 | 多线程占优 |
| 编程、调试 | 编程简单,调试简单 | 编程复杂,调试复杂 | 多进程占优 |
| 可靠性 | 进程间不会互相影响 | 一个线程挂掉将导致整个进程挂掉 | 多进程占优 |
| 分布式 | 适应于多核、多机分布式 | 适应于多核分布式 | 多进程占优 |
引用:
多线程还是多进程的选择及区别