摘要: 1.io模型提交任务得方式: 同步:提交完任务,等结果,执行下一个任务 异步:提交完,接着执行,异步 + 回调 异步不等结果,提交完任务,任务执行完后,会自动触发回调函数同步不等于阻塞: 阻塞:遇到io,自己不处理,os会抢走cpu ,解决办法:监测到io,gevent切换到其他任务,类似欺骗os 非阻塞:cpu 运行 IO分类: 1.阻塞IO blo... 阅读全文
posted @ 2018-08-01 17:24 mumupa0824 阅读(116) 评论(0) 推荐(0) 编辑
摘要: 1.协程并发:切+保存状态单线程下实现并发:协程 切+ 保存状态 yield 遇到io切,提高效率 遇到计算切,并没有提高效率 检测单线程下 IO行为 io阻塞 切 相当于骗操作系统 一直处于计算协程:。。。单线程下实现并发:根本目标:遇到IO就切,一个线程的整体IO降下来程序用的cpu 时间长,就叫执行效率高效率最高:多个进程 (多个cpu) 每... 阅读全文
posted @ 2018-08-01 14:20 mumupa0824 阅读(152) 评论(0) 推荐(0) 编辑
摘要: 1.线程queue :会有锁 q=queue.Queue(3) q.get() q.put()先进先出 队列后进先出 堆栈优先级队列 1 """先进先出 队列""" 2 import queue 3 q=queue.Queue(3) #先进先出->队列 4 5 q.put('first') 6 q.put(2) 7 # q.put('third') 8 # q... 阅读全文
posted @ 2018-08-01 11:23 mumupa0824 阅读(196) 评论(0) 推荐(0) 编辑
摘要: 1.互斥锁: 原理:将并行变成串行 精髓:局部串行,只针对共享数据修改 保护不同的数据就应该用不用的锁 1 from threading import Thread, Lock 2 import time 3 4 n = 100 5 6 def task(): 7 global n 8 mutex.acquire() # 效率低... 阅读全文
posted @ 2018-07-31 20:36 mumupa0824 阅读(139) 评论(0) 推荐(0) 编辑
摘要: 1.开启线程的两种方式: 进程,线程: 进程只是用来把资源集中到一起(进程只是一个资源单位,或者说资源集合)而线程才是cpu上的执行单位) 1.同一个进程内的多个线程共享该进程内的地址资源 2.创建线程的开销远小于创建进程的开销(创建一个进程,就是创建一个车间,涉及到申请空间, 而且在该空间内建至少一条流水线,但创建线程,就只是在一个车间内造一条流水线... 阅读全文
posted @ 2018-07-31 16:22 mumupa0824 阅读(211) 评论(0) 推荐(0) 编辑
摘要: 1.队列的使用: 队列引用的前提: 多个进程对同一块共享数据的修改:要从硬盘读文件,慢,还要考虑上锁: 所以就出现了 队列 和 管道 都在内存中(快); 队列 = 管道 + 上锁 用队列的目的: 进程间通信(IPC),队列可以放任意类型的数据,应该放小东西, q = Queue(3) get put full empty 队列作用: 多个进... 阅读全文
posted @ 2018-07-31 15:23 mumupa0824 阅读(137) 评论(0) 推荐(0) 编辑
摘要: 1.互斥锁: 互斥锁:Lock 原理就是把并发变成串行,一个一个运行,不错乱,但效率低 保证多个进程修改一块数据时,大家是一个一个修改,不错乱 mutex.acquire() mutex.release() 阅读全文
posted @ 2018-07-31 14:51 mumupa0824 阅读(224) 评论(0) 推荐(0) 编辑
摘要: 1.开启子进程的两种方式: 2.查看pid: 3.Process对象的其他属性或方法: 4.守护进程 阅读全文
posted @ 2018-07-31 09:28 mumupa0824 阅读(269) 评论(0) 推荐(0) 编辑
摘要: 1.操作系统的功能: 1.隐藏丑陋复杂的硬件接口,提供良好的抽象接口,供程序来调 eg: f.open() f.close() 2.管理,调度进程,负责将多个进程对硬件的竞争变得有序。(qq,word,暴风) ---》 (cpu 内存 硬盘) 2.操作系统的发展史: 1.1940-1955(第一代计算机) 真空管和穿孔卡片 没有操作... 阅读全文
posted @ 2018-07-31 09:12 mumupa0824 阅读(213) 评论(0) 推荐(0) 编辑
摘要: UDP协议 服务端 客户端 不会粘包的UDP TCP VS UDP tcp基于链接通信 基于链接,则需要listen(backlog),指定连接池的大小 基于链接,必须先运行的服务端,然后客户端发起链接请求 对于mac系统:如果一端断开了链接,那另外一端的链接也跟着完蛋recv将不会阻塞,收到的是空 阅读全文
posted @ 2018-05-09 20:37 mumupa0824 阅读(184) 评论(0) 推荐(0) 编辑