自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(6)
  • 收藏
  • 关注

原创 玩转python(6)协程

多任务系统一般都需要解决一个问题:多个任务如何调度。抢占式调度就是一种很常见的任务调度机制。以单核模式下的进程调度为例,一个进程处于运行状态,其他的处于就绪队列,等到当前运行的进程放弃CPU的使用权,系统将CPU立刻分配给新到达的进程,由于任务的执行顺序是不确定的,看上去就像一堆任务在竞争CPU的使用权,所以这种多任务运行方式叫做“多任务竞争”。与之对应的是非抢占式调度。当前任务会持续执行下去直到...

2018-05-31 16:59:27 300

原创 玩转python(5)生成器的原理

函数的调用满足“后进先出”的原则,也就是说,最后被调用的函数应该第一个返回,函数的递归调用就是一个经典的例子。显然,内存中以“后进先出”方式处理数据的栈段是最适合用于实现函数调用的载体,在编译型程序语言中,函数被调用后,函数的参数,返回地址,寄存器值等数据会被压入栈,待函数体执行完毕,将上述数据弹出栈。这也意味着,一个被调用的函数一旦执行完毕,它的生命周期就结束了。在python这样的解释型语言...

2018-05-19 11:27:52 964

原创 玩转python(4)生成器

生成器是python中一个很有趣的概念,不只是有趣,而且很实用。我们经常需要生成数组,一般来说,数组占据内存的大小和数组的长度有直接关系。数组中的元素越多,长度越长,占据的空间也越大。下面的代码中,我们初始化3个列表,并分别存放10,100,1000个元素:import sysl1 = list()l2 = list()l3 = list()for i in range(10):...

2018-05-18 09:09:45 179

原创 玩转python(3)全局解释器锁学习心得

这几天我在GitHub上读了GIL的实现和python主循环的源码,总算对python的GIL有了大概的理解,现在来分享一下心得。 GIL源码上有这样一段注释: The GIL is just a boolean variable (locked) whose access is protected by a mutex (gil_mutex), and whose changes ar...

2018-05-09 19:47:47 329

原创 玩转python(2)多线程的历史2

线程这个概念早在多核CPU出现之前就提出来了,单核时代的多线程主要是为了让CPU尽量不处于空闲状态,使其计算能力始终能得到利用。但本质上讲,在任意时刻只有一个线程在执行。尽管任意时刻只有一个线程在执行,但是依然有些问题需要解决,其中最重要的就是线程安全。这个问题的来源很简单,我之前说过,CPU对指令是一条一条执行的,不过要注意的是,高级语言中的一行代码在汇编语言层面上,可能由多条汇编指令组成的...

2018-05-08 15:21:09 186

原创 玩转python(1)多线程的历史1

2017年年底,我从老东家离职。离职后我和小伙伴创业,负责确定技术栈以及服务端的开发部署。在进行了综合考虑之后,我决定使用python作为我们的后端语言。虽然只有一年半的工作经验,还是个菜鸟,但是我也明白一个优秀的程序员不应该只满足功能的实现,更要对性能有不懈的追求,这里要提到的多线程就是一种提高性能的手段。 不过,python的多线程和其他的语言的多线程是有所不同的。我上一份工作是java开发...

2018-05-07 17:15:10 139

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除