摘要: epoll 阅读全文
posted @ 2019-06-13 09:05 sry 阅读(78) 评论(0) 推荐(0) 编辑
摘要: IO模型 模型就是解决某个问题的套路 IO问题: 输入输出 我要一个用户名用来执行登陆操作,问题用户名需要用户输入,输入需要耗时, 如果输入没有完成,后续逻辑无法继续,所以默认的处理方式就是 等 将当前进程阻塞住,切换至其他进程执行,等到按下回车键,拿到了一个用户名,再唤醒刚才的进程,将状态调整为就 阅读全文
posted @ 2019-06-11 22:15 sry 阅读(101) 评论(0) 推荐(0) 编辑
摘要: 我们知道GIL锁将导致CPython无法利用多核CPU的优势,只能使用单核并发的执行。很明显效率不高,那有什么办法能够提高效率呢? 效率要高只有一个方法就是让这个当前线程尽可能多的占用CPU时间,如何做到? 任务类型可以分为两种 IO密集型 和 计算密集型 对于计算密集型任务而言 ,无需任何操作就能 阅读全文
posted @ 2019-06-06 16:54 sry 阅读(110) 评论(0) 推荐(0) 编辑
摘要: 一.什么是GIL 需要知道的是,解释器并不只有CPython,还有PyPy,JPython等等。GIL也仅存在与CPython中,这并不是Python这门语言的问题,而是CPython解释器的问题! 二.GIL带来的问题 首先必须明确执行一个py文件,分为三个步骤 从硬盘加载Python解释器到内存 阅读全文
posted @ 2019-06-06 16:20 sry 阅读(149) 评论(0) 推荐(0) 编辑
摘要: 1.什么是线程 线程是操作系统最小的运算调度单位,被包含在进程中,一个线程就是一个固定的执行流程 线程和进程的关系 : 线程不能单独存在,必须存在与进程中 进程是一个资源单位,其包含了运行程序所需的所有资源 线程才是真正的执行单位 没有线程,进程中的资源无法被利用起来,所以一个进程至少包含一个线程, 阅读全文
posted @ 2019-06-04 16:53 sry 阅读(110) 评论(0) 推荐(0) 编辑
摘要: 本章目录 一.什么是socket 二.为什么需要socket 三.socket的发展 四.python中的socket 五.基于TCP的socket 六.基于UDP的socket 六. 粘包问题详解 七.粘包的解决方案 引入:为什么一定要先学习网络协议? 之所以学习网络编程就是为了让我们的程序能够利 阅读全文
posted @ 2019-06-03 08:25 sry 阅读(200) 评论(0) 推荐(0) 编辑
摘要: 一.C/S构架 二.网络通讯的基本要素 三.网络通讯协议 什么是网络编程 网络通常指的是计算机中的互联网,是由多台计算机通过网线或其他媒介相互链接组成的 编写基于网络的应用程序的过程序称之为网络编程 为什么要学习网络编程 我们已经知道计算机,由硬件 操作系统,应用程序组成,有了这三个元素,就可以在自 阅读全文
posted @ 2019-05-27 20:54 sry 阅读(119) 评论(0) 推荐(0) 编辑
摘要: 1、元类 什么是元类: 一切皆对象,类也是对象,可以把一个类当成普通对象来使用,比如存储到列表中或者作为参数传给函数等等.... 对象是如何产生的? 通过类实例化产生的 类对象 是由 type 实例化产生的 class AClass: pass print(type(AClass)) 我们可以手动调 阅读全文
posted @ 2019-05-24 19:23 sry 阅读(94) 评论(0) 推荐(0) 编辑
摘要: 1、封装 什么是封装? 1.对外部隐藏内部的属性,以及实现细节,给外部提供使用的接口 注意:封装有隐藏的意思,但不是单纯的隐藏 学习封装的目的:就是为了能够限制外界对内部数据的访问 python中属性的权限分为两种: 1.公开的 没有任何限制,谁都可以访问 2.私有的 只有当前类本身能狗访问 默认为 阅读全文
posted @ 2019-05-20 22:14 sry 阅读(141) 评论(0) 推荐(0) 编辑
摘要: 1.继承的另一种使用方式 最常见的是直接继承一个已经存在的类 当你想要创建一个新的类 发现这个类中的一些 在某一个类中已经存在 那就没有必要从头开始写 ,可以直接继承已有的类 然后做补充 class MyList(list): def __init__(self,element_cls): 当你覆盖 阅读全文
posted @ 2019-05-17 21:14 sry 阅读(117) 评论(0) 推荐(0) 编辑