摘要: IO模型 模型即解决某个问题的固定套路或方法. I/O指的是输入/输出,输入或输出数据需要很长一段时间(相对于CPU而言),在等待输入/输出的过程中,CPU处于闲置状态,造成资源浪费. 注意:IO类型较多,例如socket的网络IO,等待键盘的输入等,对比起来socket的网络IO需要等待的时间是最 阅读全文
posted @ 2019-07-14 15:47 wanjiang 阅读(116) 评论(0) 推荐(0) 编辑
摘要: epoll真正实现高并发服务器 epoll是IO模型中的一种,属于多路复用IO模型; select也是一种多路复用的IO模型,但是其单个select最多只能同时处理1024个socket,效率实在算不上高 注意:epoll仅在linux中可用 select实现并发的思路: 1.当网卡收到数据后会现将 阅读全文
posted @ 2019-07-14 15:47 wanjiang 阅读(1724) 评论(0) 推荐(0) 编辑
摘要: 引子 上一节中我们知道GIL锁将导致CPython中多线程无法并行执行,只能并发的执行。 而并发实现的原理是切换+保存,那就意味着使用多线程实现并发,就需要为每一个任务创建一个线程,必然增加了线程创建销毁与切换的带来的开销 明显的问题就是,高并发情况下,由于任务数量太多导致无法开启新的线程,使得即没 阅读全文
posted @ 2019-07-14 15:46 wanjiang 阅读(147) 评论(0) 推荐(0) 编辑
摘要: Event事件 线程间状态同步:即将一个任务丢到子进程中,这个任务将异步执行,如何获取到这个任务的 执行状态 注意: 执行状态和执行结果不是同一个概念,异步回调拿到的是任务的执行结果 假设 一个线程 负责启动服务器 启动服务器需要花一定的时间 另一个线程作为客户端 要连接服务器 必须保证服务器已经启 阅读全文
posted @ 2019-07-14 15:45 wanjiang 阅读(182) 评论(2) 推荐(0) 编辑
摘要: 同步异步 程序的运行状态:阻塞和非阻塞 处理任务的方式:并行,并发,串行 提交任务的方式:同步,异步 同步 指的是 提交任务后必须在原地等待 直到任务结束 异步 提交任务后不需要在原地等待 可以继续往下执行代码 异步效率高于同步 ,异步任务将导致一个问题 就是 任务的发起方不知道任务何时 处理完毕 阅读全文
posted @ 2019-07-14 15:43 wanjiang 阅读(169) 评论(0) 推荐(0) 编辑
摘要: 线程池与进程池 ​ 为什么要装到容器中 1. 可以避免频繁的创建和销毁(进程/线程)来的资源开销 2. 可以限制同时存在的线程数量 以保证服务器不会应为资源不足而导致崩溃 3. 帮我们管理了线程的生命周期 4. 管理了任务的分配 阅读全文
posted @ 2019-07-14 15:42 wanjiang 阅读(115) 评论(0) 推荐(0) 编辑
摘要: 生产者消费者模型 模型就是解决某个问题的固定方法或套路 1.1某种问题 生产者:泛指产生数据的一方 消费者:泛指处理数据的一方 由于生产者和消费者的对处理速度不一样,数据传输过程耦合度过高,造成CPU工作效率低的情况 1.2解决思路 1. 先将双方解开耦合,让不同进程负责不同的任务 2. 提供一个共 阅读全文
posted @ 2019-07-14 15:41 wanjiang 阅读(163) 评论(0) 推荐(0) 编辑
摘要: 并发编程之GIL锁 1.定义 ​ GIL(Global_Interpreter_Lock)全局解释器锁: ​ 在cpython中,GIL是一个互斥锁,为了防止多个本地线程在同一时间执行python字节码,因为cpython中的内存管理是非线程安全的,而cpython中的很多特性都依赖于这个特性. 2 阅读全文
posted @ 2019-07-14 15:40 wanjiang 阅读(132) 评论(0) 推荐(0) 编辑
摘要: 并发编程中关于死锁,递归锁,信号量的理解 1.死锁 ​ 所谓死锁: 是指两个或两个以上的进程或线程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程称为死锁进程,如下就是死锁 ​ 产生死锁的情况:1 阅读全文
posted @ 2019-07-14 15:38 wanjiang 阅读(129) 评论(0) 推荐(0) 编辑
摘要: 并发编程 多进程 1.并发编程 ​ 并发指的是多个任务同时被执行,并发编程指的是编写支持多任务并发的应用程序。 2. 进程 ​ 进程指的是正在运行的程序,是一系列过程的统称,也是操作系统在调度和进行资源分配的基本单位 .进程是实现并发的一种方式. 3. 进程与程序 ​ 进程是正在运行的程序,程序是程 阅读全文
posted @ 2019-07-14 15:37 wanjiang 阅读(403) 评论(0) 推荐(0) 编辑