嵌入式100题(002):多进程、多线程的优缺点

标题多进程、多线程的优缺点?

多进程优点:

•	每个进程互相独立,不影响主程序的稳定性,子进程崩溃没关系; 	
•	通过增加CPU,就可以容易扩充性能;
•	可以尽量减少线程加锁/解锁的影响,极大提高性能,就算是线程运行的模块算法效率低也没关系;
•	每个子进程都有2GB地址空间和相关资源,总体能够达到的性能上限非常大

多进程缺点:

•	逻辑控制复杂,需要和主程序交互; 	
•	需要跨进程边界,如果有大数据量传送,就不太好,适合小数据量传送、密集运算
•	多进程调度开销比较大;

多线程的优点:

•	无需跨进程边界; 	
•	程序逻辑和控制方式简单; 	
•	所有线程可以直接共享内存和变量等; 	
•	线程方式消耗的总资源比进程方式好;

多线程缺点:

•	每个线程与主程序共用地址空间,受限于2GB地址空间; 	
•	线程之间的同步和加锁控制比较麻烦;
•	一个线程的崩溃可能影响到整个程序的稳定性; 	
•	到达一定的线程数程度后,即使再增加CPU也无法提高性能,例如Windows Server2003,大约是1500个左右的线程数就快到极限了(线程堆栈设定为1M),如果设定线程堆栈为2M,还达不到1500个线程总数;
•	线程能够提高的总性能有限,而且线程多了之后,线程本身的调度也是一个麻烦事儿,需要消耗较多的CPU。
上一篇:leetcode 002 两数相加 Java题解


下一篇:002 mysql之中的存储引擎