Your browser does not support the Canvas element.

08 2018 档案

摘要:一、用非阻塞IO解决阻塞IO模型 import socket sk = socket.socket() sk.bind(('127.0.0.1',8080)) sk.listen() sk.setblocking(False) lst = [] del_lst = [] while 1: try: 阅读全文
posted @ 2018-08-28 23:01 一根小菜 阅读(170) 评论(0) 推荐(0)
摘要:一、什么事协程? 协程是一个比线程更加轻量级的单位,是组成线程的各个函数。 携程本身没有实体 二、为什么要有协程? 1、为了在单线程内实现并发的效果。 因为Cpython中有一个GIL锁,限制了同一时间点,只能执行一个线程所以想要在执行 一个线程的期间充分利用CPU的性能。 2、并发的本质是什么? 阅读全文
posted @ 2018-08-28 21:41 一根小菜 阅读(143) 评论(0) 推荐(0)
摘要:一、线程的基本概念: 线程被称为轻量级进程。 计算机的执行单位以线程为单位。计算机的最小可执行是线程。 进程是资源分配的基本单位。线程是可执行的基本单位,是可被调度的基本单位。 线程不可以自己独立拥有资源。线程的执行必须依赖所属进程中的资源。 进程中必须至少有一个线程。 由于GIL(全局解释锁,只在 阅读全文
posted @ 2018-08-23 19:23 一根小菜 阅读(220) 评论(0) 推荐(0)
摘要:1、生产者和消费者模型 作用:用于解耦。 原理:生产者将生产的数据放到缓存区,消费者从缓存区直接取。借助队列来实现该模型(队列就是缓存区) 队列是安全的,自带锁机制。 q = Queue(num) num 为队列的最大长度,可以自己设定。 q.put(): 向队列里放数据,如果数据满了就阻塞等待,如 阅读全文
posted @ 2018-08-22 22:17 一根小菜 阅读(171) 评论(0) 推荐(0)
摘要:1、锁机制 为了保护数据,有了锁机制, from multiprocessing import Lock 导入锁模块 以存取钱为例 当你在存钱的时候,你的女朋友/男朋友正在取钱,此时你存10,他取10,由于数据没能及时更新,就有可能造成数据混乱。 一把钥匙配一把锁 包括12306购票系统也是应用了锁 阅读全文
posted @ 2018-08-21 21:30 一根小菜 阅读(162) 评论(0) 推荐(0)
摘要:1、 并行:同一时间点,多件事情同时发生。相当于多车道(同时跑4辆车) 并发:同一时间间隔,多件事情有序的发生。相当于单车道(依次跑了4辆车) 同步:第二个进程的执行需要依赖第一个进程的结果,只有第一个进程执行完毕,第二个进程才会执行,这叫同步。 异步:进程之间相互独立,在执行进程1 的时候 可以同 阅读全文
posted @ 2018-08-20 17:26 一根小菜 阅读(135) 评论(0) 推荐(0)
摘要:1、编程语言的发展: 机器语言:用 0 1 来实现。 汇编语言:指令、 命令形式的 高级语言:分为面向过程语言:C语言 面向对象语言:Java 、 python 等语言。 2、计算机的组成部分: CPU 主板 存储 输入设备 输出设备 3、进程由三部分组成 代码段 数据段 PCB(进程控制块) 4、 阅读全文
posted @ 2018-08-20 15:40 一根小菜 阅读(107) 评论(0) 推荐(0)
摘要:一、概念: 1、粘包是发送端发送数据,接收端不知如何接受而造成的一种数据混乱的现象。 2、只存在于TCP中,而UDP中没有。 二、两种出现粘包的机制 1、合包机制: 当发送端的数据是多个数据包,并且数据之间的间隔很短时,多个数据包发送到缓冲区时就会进行合包(Nagle算法实现的).然后发送到 接收端 阅读全文
posted @ 2018-08-14 17:08 一根小菜 阅读(417) 评论(0) 推荐(0)
摘要:TCP 三次握手,四次断开 三次握手(必须先由客户端发起) 客户端:发送请求帧给服务器。 服务器:收到客户端的请求,并回复可以建立连接 客户端:与服务器建立连接 四次断开 (谁先发起都行,以客户端为例) 客户端:向服务器发送断开请求,才过程中客户端准备断开,但是如果服务器还有内容要发送,客户端还能继 阅读全文
posted @ 2018-08-13 21:47 一根小菜 阅读(307) 评论(0) 推荐(0)
摘要:网络知识 1、架构 C / S 架构 :Client(客户端)/ Server(服务器) 优点:能够充分发挥PC机的作用。因为C/S架构中是客户端,它功能多,内容多,举个列子,一个端游和一个页游之间,端游内容复杂,而页游内容相对简单,所以,端游能够充分发挥出PC机的优势。 B / S 架构: Bro 阅读全文
posted @ 2018-08-12 12:58 一根小菜 阅读(129) 评论(0) 推荐(0)
摘要:单端队列 用于同一进程中的队列,可以叫做单进程队列。 queue 遵循先进先出,先进去的必须先出来 1、先进先出: impore queue q = queue.Queue() 实例化一个对象 q.put(1) put() 放值 q.put('abc') q.put([1,2,3]) q.get() 阅读全文
posted @ 2018-08-11 19:26 一根小菜 阅读(127) 评论(0) 推荐(0)
摘要:一、能够把一个字符串数据类型的变量,转换成一个定长的,密文的字符串。且每一个字符串中的字符都是一个十六进制的数子。 二、对于相同的字符串,无论字符串多长,无论在什么环境下,任何语言中,使用相同的算法得出的结果都是一样的。只要不是相同的字符串,结果就是不同的。 三、常用的两种加密算法 MD5算法 (不 阅读全文
posted @ 2018-08-10 18:57 一根小菜 阅读(156) 评论(0) 推荐(0)
摘要:一、 什么是异常?什么是错误? Iteration 异常: 在执行过程中引发的异常 Error 错误: 较明显的错误,在编译代码的阶段就能被检测出来。 二、异常发生之后的效果。 程序一旦检测到异常,就会自动停止,不再继续执行。 三、异常处理 1、简单异常处理 try : pass except 错误 阅读全文
posted @ 2018-08-09 22:55 一根小菜 阅读(132) 评论(0) 推荐(0)
摘要:一、json 模块 1、定义 将字典、列表等内容转换成字符串的过程就是序列化。 操作的数据类型有限,但是可以支持所有编程语言操作。 2、为什么要有序列化? 1、以某种存储形式使自定义对象持久化。 2、将对象进行传递 3、是程序更具维护性 3、四大功能 (dumps,loads,dump,load) 阅读全文
posted @ 2018-08-09 18:46 一根小菜 阅读(169) 评论(0) 推荐(0)
摘要:os 模块 用于和操作系统打交道 是一个与操作系统打交道的接口 os.getcwd() :拿到的是当前的工作路径,而非绝对路径 os.mkdir() 创建单级目录 os.makedirs() 创建多级目录 os.rmdir() 删除一层目录,(不能删除一个非空文件夹) os.removedirs() 阅读全文
posted @ 2018-08-08 21:19 一根小菜 阅读(136) 评论(0) 推荐(0)
摘要:一、时间模块 python 中有三种时间: 时间戳时间:记录的是从1970年1月1日 0:0:0 / 8:0:0(英国是0点,中国是8点)到此时此刻所走的秒数。 print(time.time()) 结构化时间:print(time.localtime)就会得到一个这种形式的结构化时间 格式化时间: 阅读全文
posted @ 2018-08-08 17:52 一根小菜 阅读(87) 评论(0) 推荐(0)
摘要:一、是一个与python解释器交互的模块 二、sys.path 查看当前路径 sys.modules[__name__],获取该文件中的所有内容 sys.platform 查看操作系统(不准确) sys.exit 退出程序 正常退出:sys.exit(0) 异常退出:sys.exit(1) sys. 阅读全文
posted @ 2018-08-08 16:48 一根小菜 阅读(110) 评论(0) 推荐(0)
摘要:一、随机模块 二、随机小数 0-1之内的随机小数 random.random() 任何范围内的随机小数 random。uniform(1,5) 三、随机整数 random.randint(1,2) 随机整数,顾头顾尾 random.randrange(1,2) 随机整数,顾头不顾尾 random.r 阅读全文
posted @ 2018-08-08 15:34 一根小菜 阅读(122) 评论(0) 推荐(0)
摘要:一、转义符。‘\’ \ 代表转义。在python 中 r 表示取消所有转义。 二、re 模块中的一些 方法。 表达形式 ret = re.findall('正则表达式', '字符串') 1、findall 匹配所有,输出的是一个列表 findall 遇见分组会优先显示分组内容,此时需要在分组前加上? 阅读全文
posted @ 2018-08-07 16:07 一根小菜 阅读(148) 评论(0) 推荐(0)
摘要:定义:一种匹配字符串的规则。 作用范围:只能用于处理字符串。 正则表达式能做什么? A.可以制定一个规则 1、来确认某一个字符串是否符合规则 2、从大段的字符串中找到符合规则的内容 B.程序领域 登录注册页的表单验证 爬虫 C.自动化开发 日志开发 元字符 [ ] 字符组 [0-9] = \d [a 阅读全文
posted @ 2018-08-06 21:30 一根小菜 阅读(124) 评论(0) 推荐(0)
摘要:一、什么是模块?(what) 自己无法实现需要用别人写好的功能。(可能是文件夹/py文件/C语言编译好的一些文件) 二、模块的好处。(why) 1.可以进行分类管理。具有相同类型的写在一个模块中。比如所有有关时间的模块写在一个模块中。 2.可以节约内存。模块在未调用之前都存在硬盘上。 3.提供跟多的 阅读全文
posted @ 2018-08-03 17:00 一根小菜 阅读(191) 评论(0) 推荐(0)

Your browser does not support the Canvas element.