进程池与线程池
自己胡乱写一点理解,以作记录,没有逻辑,没有主题,没有结论,欢迎拍拍。
这两种模式在服务器开发中还是用得比较多。技术本无所谓好坏,不同技术都有自己的特点和缺点,只有他们的适用场合不同而已。进程池的最大好处在于任务的隔离性,不同进程处理的任务之间是相互独立,互不影响的,即使某个进程再处理某个用户的某个请求是crash了,也不会影响整个程序的执行。而线程池则正好相反,某个现场崩溃了,其他线程也不会有好果子吃,大家一起归西!很多人选择进程池就是因为这个原因,但是也不意味着进程池里面就可以随便crash了,作为服务器程序员,不断追求完美,处理所以可能和不可能发生的异常情况,精雕细琢内存的使用本来就是份内事.
线程池的优点之一就是现场切换代价小,而且数据共享容易(这也可以说成是它的缺点),处理重复的小任务还是比较好的.
市面上有些进程池框架是对每个用户连接一个进程进行处理,这种方式下并发量恐怕上不来(如果你的应用本来就不要球并发就没的说了),这样每个用户就和一个特定进程关联了。银行系统里面应该用得比较多,他们不缺钱,他们要尽可能杜绝用户之间相互影响。如果有一个主进程来处理解析协议和业务逻辑,每个进程只是作为工作进程,从队列里面取任务进行处理,如果进程过多,切换开销会很客观,但是如果你本来就是多核的服务器,而且进程数很少,且在这样的配置下,你的业务运行得很好,那也没的说了。
阅读(3697) | 评论(0) | 转发(0) |