1 多线程的优点
1)无需跨进程边界;程序逻辑和控制方式简单;
2)所有线程可以直接共享内存和变量等;
3)线程方式消耗的总资源比进程方式好。
2 多线程的缺点
1)每个线程与主程序共用地址空间,受限于2GB地址空间;
2)线程之间的同步和加锁控制比较麻烦;一个线程的崩溃可能影响到整个程序的稳定性;
3)到达一定的线程数程度后,即使再增加CPU也无法提高性能,例如Windows Server 2003,大约是1500个左右的线程数就快到极限了(线程堆栈设定为1M),如果设定线程堆栈为2M,还达不到1500个线程总数;
4)线程能够提高的总性能有限,而且线程多了之后,线程本身的调度也是一个麻烦事儿,需要消耗较多的CPU 。
|