你真的会python吗?

Roy
声明:这篇文章转自http://www.dongwm.com/archives/ni-zhen-de-hui-pythonma/,我看后颇有当头棒喝之感,故收于此顺便修改几处错字,十分感谢原作者! 前言 我这个博客一直都是一些技术分享,show code的地方,我从来没有写过个人生活或者情感杂谈,当然我也从来没有谈论过我对什么东西的喜恶. 很多人喜欢喷XX语言,喜欢谈论XX和YY的优缺,甚至凑了一本不知所云的书…好吧,我觉得没有使用一门语言超过10年,没有对一个技术研究个5,6年, 不好意思说自己懂(天才除外).我也觉得我没有资格讨论什么,也许我有我的观点看法,但是我怀着怀疑的心态看自己,生怕自己理解错了. 下文纯属个人吐槽,也许没有指定路怎么走,只是希望提个醒… 使用python2年,可喜的是python被越来越多的人接受,甚至前端工程师…但是却有点烂大街的感觉:感觉出门不聊几句python都不好意思和人打招呼.但是你真的懂python嘛? 你会python真的不重要 python实在太好学习了,假如你会其它的语言,可能搞本书翻一翻,一周后就能写很高端的python程序,由于web框架的普及,你甚至可以让一个网站应用跑起来. 你会我也会,你有什么竞争力?

那个不嫌你穷的姑娘,为什么没陪你走到最后

Roy

非诚勿扰里乐嘉老师曾发过一段微博,大意是说乐嘉老师自己初恋的时候,有一个姑娘很爱他,那时候乐嘉人又穷,又桀骜,又倔又愤,就觉得 你爱我你就应该怎样怎样的证明,最后有一天,姑娘终于跑掉了,确实跟了个有钱人,于是乐嘉就又觉得姑娘是因为嫌贫爱富,着实的去跟姑娘纠缠闹腾了一阵子。 直到很多年后的今天,乐嘉老师自己也成熟了,有钱有地位了,可以心平气和的想这段往事,才真的承认,人家姑娘当初跟他分手,不是嫌他穷。

年少的时候常常想能开一辆敞篷车又带著自己喜欢的人在满是落叶的山路上慢慢开,可是现在我发现这是很难的。因为开著敞篷车的时候旁边没有自己喜欢的姑娘,而 有自己喜欢的姑娘在边上的时候又没开敞篷车,有敞篷的车和自己喜欢的姑娘的时候偏偏又只能被堵车在城里。然后随著时间过去,这样的冲动也越来越少,不像上 学的时候,觉得可以为一个姑娘付出一切——对了,甚至还有生命。

Gevent学习记录1

Roy
关于Gevent出现URLError: <urlopen error [Errno 66] unknown>错误: 学习的过程中,有些网址始终出现上面提示的那个错误,但用浏览器访问确实是正常的。 有网友提示说把gevent.monkey.patch_all(dns=false),经我实验后发现,这么改过后有些网址确实变得正常了,但有些网址却出现了其它比如time out、Network is unreachable等错误。

python异步任务队列、消息队列

Roy

提起gevent,就不得不提起greenlet。按照官方解释greenlet是轻量级的并行编程,而gevent呢,就是利用greenlet实现的基于协程的python的网络library。

官方文档:http://www.gevent.org/contents.html

说说协程,进程和线程大家平时了解的都比较多,而协程算是一种轻量级进程,但又不能叫进程,因为操作系统并不知道它的存在。什么意思呢,就是说,协程像是一种在程序级别来模拟系统级别的进程,由于是单进程,并且少了上下文切换,于是相对来说系统消耗很少,而且网上的各种测试也表明,协程确实拥有惊人的速度。并且在实现过程中,协程可以用以前同步思路的写法,而运行起来确是异步的,也确实很有意思。话说有一种说法就是说进化历程是多进程->多线程->异步->协程,暂且不论说的对不对,单从诸多赞誉来看,协程还是有必要理解一下的。

GIL,线程,协程

Roy
并行与并发 并发:一个CUP运行多个程序,就好像一个人吃三个馒头。 并行:一个程序同一时刻运行在多个CUP上,就好像三个人吃一个馒头。 再从网上借用个例子: “并行”是指无论从微观还是宏观,二者都是一起执行的,就好像两个人各拿一把铁锨在挖坑,一小时后,每人一个大坑。而“并发”在微观上不是同时执行的,只是把时间分成若干段,使多个进程快速交替的执行,从宏观外来看,好像是这些进程都在执行,这就好像两个人用同一把铁锨,轮流挖坑,一小时后,两个人各挖一个小一点的坑,要想挖两个大一点得坑,一定会用两个小时。 从以上本质不难看出,“并发”执行,在多个进程存在资源冲突时,并没有从根本提高执行效率。明白了这个区别后再往下看。 GIL 由于新的项目可能需要进行py线程级别的操作,便开始学习了python线程的相关知识。但是学习的过程中发现,由于py中GIL(解释器全局锁)的存在,线程对于py来说似乎是一个比较鸡肋的东西。 关于GIL这篇文章解释的很好:http://www.oschina.net/translate/pythons-hardest-problem?p=2#comments 既然如此,为什么py中不取消GIL呢?这篇文章给予了一定程度的解答:http://www.cnblogs.com/mindsbook/archive/2009/10/15/thread-safety-and-GIL.html