网创优客建站品牌官网
为成都网站建设公司企业提供高品质网站建设
热线:028-86922220
成都专业网站建设公司

定制建站费用3500元

符合中小企业对网站设计、功能常规化式的企业展示型网站建设

成都品牌网站建设

品牌网站建设费用6000元

本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...

成都商城网站建设

商城网站建设费用8000元

商城网站建设因基本功能的需求不同费用上面也有很大的差别...

成都微信网站建设

手机微信网站建站3000元

手机微信网站开发、微信官网、微信商城网站...

建站知识

当前位置:首页 > 建站知识

Open×××单线程原因

本文简单说一下一个几乎没有人考虑过的问题,那就是为什么Open×××被设计成单线程单进程的。我曾经苦苦等待Open×××新版本的推出,第一件事就是看其ChangeLog,然而没有发现multiXXX,我一直都不理解多核时代为何还有单进程单线程的Open×××,这个答案在我通读了Open×××的maillist之后终于有了答案。
        多线程在多核系统中的最大好处就是可以最大限度的利用多个处理器核心,然而一个好的算法在多核环境中最最关注的就是如何将欲求解的问题分割成可以并行处理的多个问题,然后将其分派给不同的处理器核心去处理。在典型的C/S模型中,一般根据客户来分派线程或者进程。比如Apache就是这么做的,其实IIS也差不到哪去,而且经典的UNIX网络编程规范也建议如此做,因此人们很容易将Apache的做法看做是理所当然的,虽然有了event机制来替代单纯的per-客户-per-thread,然而其底层实现都差不到哪去,只是用户态的api改变最大。
        现在看看Open×××为何仅仅使用了单个处理器核心?原因很简单,那就是在IP层无法很好分割问题,如果按照用户来分割,那么很有可能一个用户连上之后并不传输数据,从而造成线程闲置,若若按照实际访问的目标来分割,那么将会造成一个笛卡尔积的复杂局面。因此最佳的方式就是让×××的搭建着自己来完成问题的分割,然后通过注入负载均衡以及虚拟网卡bonding之类的技术来提高效率。然而可悲的是,事实上这样做的人很少,大多数人都十分满足于Open×××单线程的现有表现,我在网上google相关的Open×××提速方案,令人几乎掉泪的是搜索到的文章几乎都是我自己写的…咱也是普通一朵程序员,也有任务在身,也不是什么研究所的专职资料整理者,因此也希望能互动一把,总不能光奉献不索取吧。



本文名称:Open×××单线程原因
浏览地址:http://bjjierui.cn/article/gijdho.html

其他资讯