多进程与多线程的区别?
解:(1)从数据共享、同步方面来讲,多进程数据共享复杂,需要用IPC,数据是分开的,同步简单;多线程数据共享简单,但也是因为这个原因导致同步复杂。
(2)从内存、CPU方面来讲,多进程占用内存多,切换复杂,CPU利用率低;多线程占用内存少,切换简单,CPU利用率高。
(3)从创建销毁、切换方面来讲,多进程创建销毁、切换复杂,速度慢;多线程创建销毁、切换简单,速度很快。
(4)从编程、调试方面来讲,多进程编程简单,调试简单;多线程编程复杂,调试复杂。
(5)从可靠性方面来讲,进程间不会互相影响;一个线程挂掉将导致整个进程挂掉。
(6)从分布式方面来讲,多进程适应于多核、多机分布式;如果一台机器不够,扩展到多台机器比较简单;多线程适应于多核分布式。