标签:主程序 性能 002 线程 进程 100 多线程 CPU
标题多进程、多线程的优缺点?
多进程优点:
• 每个进程互相独立,不影响主程序的稳定性,子进程崩溃没关系;
• 通过增加CPU,就可以容易扩充性能;
• 可以尽量减少线程加锁/解锁的影响,极大提高性能,就算是线程运行的模块算法效率低也没关系;
• 每个子进程都有2GB地址空间和相关资源,总体能够达到的性能上限非常大
多进程缺点:
• 逻辑控制复杂,需要和主程序交互;
• 需要跨进程边界,如果有大数据量传送,就不太好,适合小数据量传送、密集运算
• 多进程调度开销比较大;
多线程的优点:
• 无需跨进程边界;
• 程序逻辑和控制方式简单;
• 所有线程可以直接共享内存和变量等;
• 线程方式消耗的总资源比进程方式好;
多线程缺点:
• 每个线程与主程序共用地址空间,受限于2GB地址空间;
• 线程之间的同步和加锁控制比较麻烦;
• 一个线程的崩溃可能影响到整个程序的稳定性;
• 到达一定的线程数程度后,即使再增加CPU也无法提高性能,例如Windows Server2003,大约是1500个左右的线程数就快到极限了(线程堆栈设定为1M),如果设定线程堆栈为2M,还达不到1500个线程总数;
• 线程能够提高的总性能有限,而且线程多了之后,线程本身的调度也是一个麻烦事儿,需要消耗较多的CPU。
标签:主程序,性能,002,线程,进程,100,多线程,CPU 来源: https://www.cnblogs.com/swk0918/p/14444904.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。