随笔 - 290  文章 - 10  评论 - 85  2
 60多年前,我们公司一群无知无畏充满理想的程序员从俄罗斯那里里找了一个免费的开源软件框架,进行了汉化以后,写了几行漏洞百出的代码,产品居然上线 运营了。系统试运行期间还算正常,但是随着系统外围接口的增加,系统固有的问题就暴露出来了。30年前,新CTO实在看不下去了,重构了部分代码,改进了 部分用户体验,但框架依旧是原来的旧框架。这几年,新代码和旧框架严重不兼容,产品濒临崩溃,用户流失严重。关键是那个开源框架设计思路有问题,还没哪个 使用它的产品长期稳定运行过,后来连俄国人自己都抛弃不用了。
  
   其实这个软件最初设计思路就是单线程设计,这有一个前提就是单线程必定是强壮和稳固的,但是这个前提只是存在于理论上,并没有实例证明。因此当世界开始流 行多核处理,并行处理,甚至已经有部分软件实现了云计算的时候,单线程设计的先天缺陷就暴露出来了,主要问题在于单线程占有所有系统资源而且不受控制,甚 至连原来系统的保留资源都被占用了,线程的运行方向就变得不可控,系统鲁棒性经受了严重的考验。
  
   这一切在用户界面上,就是隔三差五跳出应用程序错误。当用户试图开启调试模式的时候,由于单线程控制了所有的输入和输出,象资源利用率、资源效率等指标都 被屏蔽了或被修改了,但是系统还告知用户“由于你的操作不当,系统资源暂不可用”,用户还只能点“确定”按钮,然后等待资源可用。
  
    相对而言,多线程的设计考虑到了多线程并行运行,或暂时某一线程优先、其他线程等候等情况,虽然存在线程之间切换成本,有时候也存在算法不当致使多线程抢 夺资源的情况,但是多线程毕竟保证了系统的稳定性,用户可以借助不同的线程完成程序的运行,至少在用户体验上没有本质差别,运算结果也能基本准确。
  
    云计算则更为领先,云计算使用了更先进的虚拟技术,采用分布式计算的方式来处理用户请求,在短时间内作出响应。用户可借助某些通用组件和程序包,实现跨软 件联合计算运行。但是目前,在虚拟技术的耦合度上还存在一些问题,比如某些虚拟技术一发动全身、存在安全组件等级下降等问题。
  
   当然了,单线程、多线程和云计算互相并不兼容。单线程指责多线程技术在业界形成了垄断;多线程则一直都在打压云计算的市场份额;云计算呢,到现在还没承认单线程资源分配方式的技术标准!
  
    但是从目前的用户体验来说,单线程已经到了几乎难以为继的地步了。这时我们该怎么办呢?第一种方法是继续修bug打补丁,补丁实在太多,工程师和现有的经 费几乎耗尽了,而且不知道打补丁还能几年。第二种方法是换个框架重构代码,但是这种重构会引起系统巨大的变动,也许是一个崭新的系统,也许系统会崩溃。第 三种方法是干脆换掉这些程序员。但是程序员号称他们对软件开发作出了革命性的贡献,只可以程序员控制用户行为,绝不允许用户另行选择。可是用户居然发现这 些程序员拿到了其他公司的Offer!
  
   大家说说,这个软件公司该怎么办?


 

cjjq451 回复
这家公司问题多,  
   但却不是一无是处,  
   因为他的通路虽然是单线程,  
   但核心处理器却是多线程的,  
   这也保证了他的效率是最高的,  
   而且处理速度最快,  
   因为没有多线程那样的互相耗费资源,  
   并且这家公司很多用户也看到原俄国那家公司,  
   因为改为多线程结果效果不好公司解散重组,  
   东南那家子公司改线程以后成天争议不断,  
   经济也在下滑,  
   新聘任的总经理监守自盗,  
   后来还被抓了,  
   于是乎很多用户对多线程也失去信心,  
   一部分用户也在考虑,  
   是否只有单线程、多线程,  
   能否设计出中国自己的一种新方案,  
   目前这家公司一边修补BUG一边最高的业绩增长率前进,  
   目前尚无倒闭清盘的迹象

 原文地址:

http://www.tianya.cn/publicforum/content/develop/1/844444.shtml

posted on 2011-09-26 11:45  Gu  阅读(...)  评论(...编辑  收藏