本文转载自:
http://blog.youkuaiyun.com/wangbin579/article/details/6327631
在linux环境下,对于服务器端程序开发而言,进程与线程各自有优点和缺点,不少人对此有不少误解。
1)默认情况下,线程占10M虚拟内存,对于开发服务器端程序来说,特别是apache程序来说,一个进程如果有50个线程,那就已经占了500M虚拟内存,很恐怖的一个数据,如果你想产生一个core文件,就产生至少500M大小的core文件。对于占用大量内存的应用程序来说,线程并没有进程好。
2)对于共享内存而已,线程控制同步访问非常容易,进程却繁琐的多
3)对于异步编程来说,进程更有意义,nginx就是很好的例子
总之对于普通应用来说,线程可能比进程更占用优势;对于大内存而言,大量线程往往会使虚拟内存消耗掉;对于异步编程而已,线程没有意义。