参考文献:http://blog.csdn.net/aaronin/article/details/7700794
相对进程而言,线程是一个更加接近于执行体的概念,它可以与同进程中的其他线程共享数据,但拥有自己的栈空间,拥有独立的执行序列。
线程的缺点:
(1) 每个线程与主程序共用地址空间,受限于2GB的地址空间;
(2) 线程之间的同步加锁控制比较麻烦;
(3) 一个线程的崩溃可能影响到整个程序的稳定性;
(4) 达到一定的线程数程度后,即使再增加CPU也无法提高性能;
(5) 线程能够提高总性能有限,线程多了以后,线程本身的调度也比较麻烦,也需要消耗cpu;
(6) 逻辑控制负责,需要和主程序交互;
(7) 有时候需要跨进程边界交换数据,数据量大时,控制麻烦,适合小数据量传输,密集运算;
进程优点:
(1)进程相互独立,不影响主程序的稳定性,子进程崩溃没关系;
(2)通过增加cpu,可以提高性能;
(3)减少加锁解锁的影响,提高性能,线程运行模块效率低也不影响;
(4)每个子模块都有2gb地址空间,和相关资源,达到的性能上线比较大;