http://www.zhuzhonghua.com/essays/2012/07/19/zhenaishengming-shiyongpython/

今天在写测试程序时,用到了Python的多线程。

首先声明,在真实环境中不要使用Python的多线程,如果要用,那也得用C写的扩展。

碰到一个所有人都会遇到的问题,要结束,强制结束某一个线程。

网上也查了很多资料,一般都是要DIY设计,通过信号啊,变量啊,等等。

我宁愿用异常让整个程序退出,也不愿这么写。

当然Python的设计哲学是不建议强制结束线程的。

在查看Thread的所有方法时,发现了一个_Thread__stop()的方法,果然好用。

在此做个记录。

再次声明,这只是在测试时,为了简单,直接,才使用的方法。

如果在真实环境中使用,后果自负。

======分割线================== C++真的不适合网络游戏开发。

我们先建立几个共识,这样分析起来比较方便。

1,C++代码要比Python代码效率不止高一点两点,有人做过测试,大概是20倍左右。

2,看代码的时间要比写代码的时间多很多,而且大部分时间在改BUG。

3,最经常出现的,也是最痛苦的BUG,内存泄露,空指针,野指针,内存写坏。

4,团队里上面这些BUG也许只占5%,但是会占用95%的时间,而且有些BUG是在正式运营的时候才出现的,所以你知道这造成的影响。而且即使出现了这些BUG,一时半会也不一定能改掉。

5,Python写起来要比C++写起来快。

6,如果你用了线程,那么就和3一样了。

如果我做一个策划的需求,使用Python要比使用C++写的快,不止快一点。

而且你也知道,策划的需求变化是随时的,经常的,如果使用C++来应对这种变化,明显是慢的。

但是如果使用Python来做,就会很快了;而且策划也可以配合修改。

使用C++改BUG时,如果是碰到野指针,内存写坏,内存泄露,那你就祈祷吧。

使用Python就不会出现这个问题。

而且改其他的BUG,Python也更容易修改,当然也更快了。

使用C++很容易写出Hard-Test的代码,于是正确性就有问题了。

这方面可以参考PG的H&P。

当然C++的优势在效率,而且可以利用多核的优势。

在此奉劝使用多线程的C++使用者,能用多进程,就不要用多线程。

于是我可以使用多进程的方式来利用多核的优势。

效率上达不到要求,那我就多开几个进程,来保证业务及时完成。

这样确实硬件成本增加了,要多买几台机器来多运行几个进程。

可是这多出来的几个硬件成本,相对于研发的成本不知道省了多少。

包括待遇,时间,以及过长时间带来的其它非研发人员的成本, 以及使用C++导致的BUG带来的各种损失,包括不能及时改掉BUG带来的时间损失,以及程序出错带来的运营损失。等。

所以从总体上来看,这其实是节省了成本。

而且按照这种思路,以大局考虑,总体考虑,来分析下面的问题。

二八原理,当分析程序的效率时,只需要找出那20%的代码,来优化,就可以达到很好的效果。

而且按照上帝的说法,过早优化是万恶之源。

所以可以使用C++写扩展来改写那20%的代码,就可以达到优化的目的。

而且从总体上来看,这才是优化之道。

这样看来,使用Python代替C++的前提是你得有一个可以多进程代替多线程的服务器机制。

C++有自己的优势,而且使用C++的人,尤其是使用C++写服务器的人,天生对内存和效率敏感。

总结下来,C++适合写稳定的,不会随便改动的代码,比如网络层。而Python适合写经常变化的代码,比如策划的需求。

珍爱生命,使用python相关推荐

  1. 珍爱生命,远离微软,一点感受源自知乎上的某人评论

    以下纯转载,不代表博主观点^_^,吃瓜请自重.. 珍爱生命,远离微软,一点感受源自知乎上的某人评论 http://blog.sina.com.cn/s/blog_8ba3f5130102vty7.ht ...

  2. 珍视友情、珍爱生命、珍重和平—读余秋雨散文作品感悟

    余秋雨的散文作品中处处充满着对人生的感悟和文化的思辨.用他自己的话评价:<文化苦旅>是背负生命的困惑,去寻找一个个文化遗迹和文化现场,然后把自己的惊讶告诉读者:<山居笔记>是对 ...

  3. 【珍爱生命,远离苏宁】在天猫苏宁易购旗舰店买到有问题的ipad,点进来,一起维权!维权群号:567621779

    双十一在天猫苏宁易购旗舰店(大家称呼猫宁)买了一台ipad,昨天才收到货,物流慢也就算了, 收到ipad后第一时间去苹果官网查了下序列号,竟然是已激活的机子,心碎一地,顿时对苏宁没有好感了. ---- ...

  4. 珍爱生命,举手之劳__如何优雅的叫优步专车

    珍爱生命,举手之劳 经常需要用车?要接送送女友,接送老婆小孩?要接送老人? 小编教你如何优雅的免费叫优步专车! 最新Uber优惠码,千万不要相信网上所说的50,100的优惠,那是骗人的,有优惠券在手才 ...

  5. 珍爱生命,远离赛门铁克(Symantec)

    如果您是一位信息安全经理,或者您是一位老板,好吧,反正是某种程度上的决策者, 如果您计划或被忽悠要在企业内导入SEP(Symantec Endpoint Protection), 请您一定要对企业内错 ...

  6. 珍爱生命,远离泡面!

    PS:      每次去华润超市买东西都要带回来一大包泡面,以备不时之需,说实话要是有人做饭谁去买泡面吃啊,而且我发现每次在泡面专柜前边的人都很多,尤其是上班或者学生族的MM,看来吃泡面的人不在少数啊 ...

  7. 咱码农为啥会(珍爱生命)远离企业应用开发

    咱码农为啥会(珍爱生命)远离企业应用开发 几年前刚开始经营自己的小摊子的时候,一听说有客户,恨不能马上过去把合同签了开工. 我想的是这样的:谈一个不错的价格,以较快的速度完成开发,然后回家数钱玩. 事 ...

  8. 珍爱生命预防溺水安全教育主题PPT模板

    模板介绍 精美PPT模板设计,珍爱生命预防溺水安全教育主题PPT模板.一套安全教育幻灯片模板,内含青色多种配色,精美风格设计,动态播放效果,精美实用. 一份设计精美的PPT模板,可以让你在汇报演讲时脱 ...

  9. 【安全知识分享】《关注消防 珍爱生命》消防安全主题教育课件(附下载)

    ​摘要:<关注消防 珍爱生命>消防安全主题教育课件 公众号:安全生产星球

  10. 珍爱生命,远离小米手机(上)

    曾经用过多种不同品牌的手机,当时智能机在国内刚刚兴起,问题很多.一次偶然的机会用了小米,发现挺不错的.UI美观,容易操作,性价比高,这一用便是5年.尚且懵懂的我竟不知他们是披着羊皮的狼.用的过程中渐渐 ...

最新文章

  1. CCF201503-4 网络延时(100分)
  2. 【web安全】Xss Exploits and Defense翻译4
  3. 开发人员如何学习 Kubernetes
  4. 吃透 | Elasticsearch filter和query的不同
  5. Docker-Desktop储存路径更改
  6. Sharepoint学习笔记—Ribbon系列
  7. Linux里的21究竟是什么
  8. IOS开发学习笔记024-UIButton和UIImageView的区别
  9. 计算机无法启动windows无线服务,win10无线服务无法启动怎么解决
  10. 在Blazor中构建数据库应用程序——第6部分——向天气应用程序添加新记录类型及其UI
  11. 存档:命令行程序的路径参数不能有空格
  12. 如何在虚拟机上安装TrueNAS系统
  13. 大数据技术对企业发展的作用
  14. 三菱PLC编程指令简介
  15. HTML——倒计时制作
  16. java 一年有多少周_Java8根据一年中的第几周获得Monday
  17. JAVA实训项目第一次日志
  18. 6 errors and 0 warnings potentially fixable with the`--fix` option
  19. js获取当前浏览器类型 和IE浏览器版本
  20. 分布式算法原理(转)

热门文章

  1. 行为驱动测试模型Behave
  2. nexus离线私服maven-metadata.xml缺失导致jar包拉取失败
  3. SDNU1025马踏飞燕
  4. Linux 存储 superblock
  5. 谷歌的秘密招聘挑战,你可否与之一战?
  6. EasyExcel填充web下载
  7. 关于史考特证券(scottrade Inc)资金转出的手续费问题
  8. 长尾关键词在线采集,搜索长尾关键词的工具
  9. js拖拽库——Sortable.js
  10. 爬取南京链家租房信息