上一页 1 ··· 15 16 17 18 19 20 21 22 23 ··· 54 下一页
摘要: 进程 资源集合,调度和分配资源,说到进程就不得不提到线程,线程和进程是密不可分,进程申请了资源,但真正使用资源的是线程,其实本质上类似面向对象的思想,面向对象把数据和数据的操作封装在一个类中,进程把资源和对资源的操作封装在进程中,其实进程本质上是对资源的封装,那就比对进程和线程的区别来认识进程: 1 阅读全文
posted @ 2018-06-08 16:09 梦_鱼 阅读(2603) 评论(0) 推荐(1)
摘要: 信号量 其实本质上是锁,Lock是单锁,信号量是指定多把锁,也就是说通过信号量指定多个数线程可以访问相同资源,一般情况下读操作可以有多个,但写操作同时只有一个 信号量模块 semaphore # 使用起来和普通锁没 什么区别,但这个是比锁更加粗粒度锁,锁的是线程 # 在线程实例前加锁,把锁传递进线程 阅读全文
posted @ 2018-06-08 10:08 梦_鱼 阅读(1277) 评论(0) 推荐(0)
摘要: GIL 全局解释器锁,这个锁是个粗粒度的锁,解释器层面上的锁,为了保证线程安全,同一时刻只允许一个线程执行,但这个锁并不能保存线程安全,因为GIL会释放掉的并且切换到另外一个线程上,不会完全占用,依据分配策略(时间片、执行字节码行数、IO操作)。GIL只能保证同一时刻同一CPU上只有一个线程执行,但 阅读全文
posted @ 2018-06-07 19:19 梦_鱼 阅读(1575) 评论(1) 推荐(1)
摘要: socket 整个计算机网络是由协议构成,想要通信必须遵守对应的协议,如Web中的http协议、传输协议TCP和UDP等等。在网络工程师的眼中,可能现在网络上的一切都是socket,一切皆socket,我们一般接触到的是应用层应用程序,本质上两个应用想通信,则必须通过socket实现通信,socke 阅读全文
posted @ 2018-06-07 11:49 梦_鱼 阅读(1547) 评论(0) 推荐(3)
摘要: yield 1. 函数执行的时候,找到yield关键字,则会标记这个函数,返回生成器对象 2. Python解释器会记录最近一次函数中yield位置 3. 生成器对象也是分配在栈堆上 4. 通过yield关键字,让程序员主动控制函数的运行状态,暂停函数还继续运行 5. 生成器可以return值 函数 阅读全文
posted @ 2018-06-06 15:52 梦_鱼 阅读(1308) 评论(0) 推荐(0)
摘要: iter 本质是for循环调用的实质,for循环通过调用这个函数返回可迭代对象生成器形式,开始迭代取值捕获StopIteration错误退出循环 for循环首先找__iter__方法,然后再找 __getitem__方法,如果都没找到则报错,对象不是可迭代对象 __iter__ 如果是自定义类生成的 阅读全文
posted @ 2018-06-06 10:20 梦_鱼 阅读(1123) 评论(0) 推荐(0)
摘要: 通过另外一个类来描叙类变量的属性类型,这个是ORM实现的核心基础 给属性赋值会调用 __set__方法,访问属性则会调用 __get__方法,则可以获取字段的对象和其值,删除字段时候则调用 __delete__方法 北门吹雪: https://www.cnblogs.com/2bjiujiu/ 阅读全文
posted @ 2018-06-05 23:30 梦_鱼 阅读(166) 评论(0) 推荐(0)
摘要: __getattr__ 查找不到类属性的时候调用 __getattribute__ 无条件进入,无论是查找属性是否存在,能不重写则不去重写 阅读全文
posted @ 2018-06-05 23:01 梦_鱼 阅读(180) 评论(0) 推荐(0)
摘要: __init__ 和 __new__区别 1. 从传递参数角度看,__init__第一个参数是实例本身, __new__传递的是类本身 2. 从执行顺序角度看,__new__方法执行在 __init__方法之前 3. 从功能角度看, __new__是控制对象实例过程,在对象生成之前就执行完毕, __ 阅读全文
posted @ 2018-06-05 22:49 梦_鱼 阅读(406) 评论(0) 推荐(0)
摘要: in 判断元素是否在序列中, 可以查看 in == is 区别 __contians__ 如果是对象则调用对象中的 __contains__方法 阅读全文
posted @ 2018-06-05 21:43 梦_鱼 阅读(1313) 评论(0) 推荐(0)
上一页 1 ··· 15 16 17 18 19 20 21 22 23 ··· 54 下一页