09 2019 档案

摘要:阅读目录 一 IO模型介绍 二 阻塞IO(blocking IO) 三 非阻塞IO(non-blocking IO) 四 多路复用IO(IO multiplexing) 五 异步IO(Asynchronous I/O) 六 IO模型比较分析 七 selectors模块 IO模型介绍 为了更好地了解I 阅读全文
posted @ 2019-09-30 12:22 aikell 阅读(254) 评论(0) 推荐(0)
摘要:阅读目录 一 引子 二 协程介绍 三 Greenlet模块 四 Gevent模块 引子 之前我们学习了线程、进程的概念,了解了在操作系统中进程是资源分配的最小单位,线程是CPU调度的最小单位。按道理来说我们已经算是把cpu的利用率提高很多了。但是我们知道无论是创建多进程还是创建多线程来解决问题,都要 阅读全文
posted @ 2019-09-28 15:51 aikell 阅读(308) 评论(0) 推荐(0)
摘要:操作系统线程理论 线程概念的引入背景 进程 之前我们已经了解了操作系统中进程的概念,程序并不能单独运行,只有将程序装载到内存中,系统为它分配资源才能运行,而这种执行的程序就称之为进程。程序和进程的区别就在于:程序是指令的集合,它是进程运行的静态描述文本;进程是程序的一次执行活动,属于动态概念。在多道 阅读全文
posted @ 2019-09-25 20:23 aikell 阅读(393) 评论(0) 推荐(0)
摘要:multiprocessing: multiprocessing模块允许程序员在给定机器上充分利用多个处理器。它可以在Unix和Windows上运行。 在中multiprocessing,通过创建Process 对象然后调用其start()方法来生成进程。 Process 遵循的API thread 阅读全文
posted @ 2019-09-21 20:20 aikell 阅读(403) 评论(0) 推荐(0)
摘要:例如: 新浪网站的IP地址可以用域名www.sina.com.cn自动转换到IP地址,但是怎么知道新浪服务器的端口号呢? 答案是作为服务器,提供什么样的服务,端口号就必须固定下来。由于我们想要访问网页,那就要考虑网页是http还是https服务: 代码如上,这样就得到了一个完整的网页源码 需要注意的 阅读全文
posted @ 2019-09-16 21:50 aikell 阅读(1296) 评论(0) 推荐(0)
摘要:listen: 建立监听,能否建立需要accept函数去进行检查 注意:backlog应该理解为阻塞队列的长度,总共与服务器连接的客户端一共有 backlog + 1 个。阻塞队列FIFO,当连接客户端结束后阻塞队列里的第一个客服端与服务器连接成功。 accept: accept()接受一个客户端的 阅读全文
posted @ 2019-09-14 16:13 aikell 阅读(4782) 评论(0) 推荐(0)
摘要:socket: 套接字(socket)是一个抽象层,应用程序可以通过它发送或接收数据,可对其进行像对文件一样的打开、读写和关闭等操作。套接字允许应用程序将I/O插入到网络中,并与网络中的其他应用程序进行通信。网络套接字是IP地址与端口的组合。 基于TCP协议的socket:tcp是基于链接的,必须先 阅读全文
posted @ 2019-09-13 20:37 aikell 阅读(356) 评论(0) 推荐(0)
摘要:日志:用来记录用户行为 或者 代码的执行过程 用途:“一键”控制,排错,记录错误,记录用户行为 五个等级:默认只打印info以上的错误信息 debug:排错信息 info:正常信息 warning:警告信息 error:错误信息 critical:严重的错误信息 两种方式: basicConfig: 阅读全文
posted @ 2019-09-12 23:13 aikell 阅读(164) 评论(0) 推荐(0)
摘要:算法介绍: Python的hashlib提供了常见的摘要算法,如MD5,SHA1等等。 什么是摘要算法呢?摘要算法又称哈希算法、散列算法。它通过一个函数,把任意长度的数据转换为一个长度固定的数据串(通常用16进制的字符串表示)。 摘要算法就是通过摘要函数f()对任意长度的数据data计算出固定长度的 阅读全文
posted @ 2019-09-12 17:00 aikell 阅读(221) 评论(0) 推荐(0)
摘要:结论: __call__:在实例化一个类时,在后边加上(),执行的就是call方法,它没有返回值,所以没有真正实例化一个对象出来,所以call方法中的操作不会影响到其它对象 __eq__:对象碰到==,执行的是__eq__ 默认情况下: 可以自定义实现: __hash__:对一个不可变数据类型has 阅读全文
posted @ 2019-09-07 21:50 aikell 阅读(241) 评论(0) 推荐(0)
摘要:python面向对象中的反射:通过字符串的形式操作对象相关的属性。python中的一切事物都是对象(都可以使用反射)四种形式:getattr setattr delattr hasattrgetattr(obj,name)例:反射类 # 反射对象的属性 # 反射对象的方法 # 反射类的属性 # 反射类的方法:classmethod staticmethod class Person: __mong 阅读全文
posted @ 2019-09-07 18:08 aikell 阅读(227) 评论(0) 推荐(0)
摘要:注意:类方法操作涉及静态属性的时候,他的操作对当前类的作用域有效,会影响所有调用该静态属性的方法。使用时需要注意self应该变为cls。 isinstance、issubclass 阅读全文
posted @ 2019-09-06 16:44 aikell 阅读(216) 评论(0) 推荐(0)
摘要:property:是一种特殊的属性,访问它时会执行一段功能(函数)然后返回值 一个静态属性property本质就是实现了get,set,delete三种方法 例:在不改变对象调用属性名的方式(obj.name)下,实现了被封装属性在类外部的查看、修改、删除 注意: 阅读全文
posted @ 2019-09-06 15:18 aikell 阅读(161) 评论(0) 推荐(0)
摘要:封装: 广义:面向对象的封装是对代码的保护,面向对象的思想本身就是一种,只让自己的对象能调用自己类中的方法就是一种封装 狭义:是面向对象的三大特性之一,属性和方法都藏起来,不让你能在外部调用,让你看不见 使用方法:名字前面加双下划线 会用到封装的场景: 1.隐藏起一个属性 不想让类的外部调用 2.我 阅读全文
posted @ 2019-09-05 19:29 aikell 阅读(188) 评论(0) 推荐(0)
摘要:Python角度:只有抽象类,没有接口类,实现接口类需要借助模块使用:abc模块中的abstractmethod和ABCMeta,声明元类metaclass = ABCMeta,且加上装饰器@abstructmethod 本质作用:代码规范,希望在子类中实现和父类方法名字完全一样的方法 Java角度 阅读全文
posted @ 2019-09-05 18:40 aikell 阅读(284) 评论(0) 推荐(0)
摘要:经典类为深度优先:即一条路找到低,找不到则换一条路。 关于super: super的本质:不是单纯找父类 而是根据调用者的节点位置的广度优先顺序来的,所以寻找顺序为D-->B-->C-->A 阅读全文
posted @ 2019-09-03 18:28 aikell 阅读(184) 评论(0) 推荐(0)