上一页 1 ··· 7 8 9 10 11 12 13 14 15 ··· 63 下一页
摘要: 之前线程池是通过操作系统切换线程,现在是程序自己控制,比操作系统切换效率要高 服务端 客户端给服务端发送500个并发量,会看到一直不停的收消息 阅读全文
posted @ 2019-07-27 18:10 minger_lcm 阅读(186) 评论(0) 推荐(0) 编辑
摘要: python 并发编程 IO模型介绍 python 并发编程 socket 服务端 客户端 阻塞io行为 python 并发编程 阻塞IO模型 python 并发编程 非阻塞IO模型 python 并发编程 多路复用IO模型 python 并发编程 异步IO模型 阅读全文
posted @ 2019-07-27 15:35 minger_lcm 阅读(164) 评论(0) 推荐(0) 编辑
摘要: 阻塞io行为 server.accept server.recv client.send recv,accept 分为两个阶段 1.wait for data 对方把数据经过网络延迟送到自己的操作系统缓存 2.把数据从操作系统缓存拷贝到应用程序内存 本地拷贝很快的,比等待要快 send只有一个阶段 阅读全文
posted @ 2019-07-27 15:03 minger_lcm 阅读(383) 评论(0) 推荐(0) 编辑
摘要: gevent 底层是怎么实现? io模型4个重要概念: 两类 一类:同步、异步 提交任务的方式 同步: 提交完任务后,在原地等待结果,拿到结果后,才执行下一行代码 异步: 提交完任务就不管了,往下执行 异步通常和回调机制联用,提交完任务,任务运行完后,自动触发,回调函数代码 阻塞:遇到io,阻塞卡主 阅读全文
posted @ 2019-07-27 14:58 minger_lcm 阅读(196) 评论(0) 推荐(0) 编辑
摘要: 协程池 阅读全文
posted @ 2019-07-27 13:46 minger_lcm 阅读(1265) 评论(0) 推荐(0) 编辑
摘要: 一 gevent模块 gevent应用场景: 单线程下,多个任务,io密集型程序 安装 Gevent 是一个第三方库,可以轻松通过gevent实现并发同步或异步编程,在gevent中用到的主要模式是Greenlet, 它是以C扩展模块形式接入Python的轻量级协程。 Greenlet全部运行在主程 阅读全文
posted @ 2019-07-12 23:19 minger_lcm 阅读(1537) 评论(0) 推荐(0) 编辑
摘要: python 并发编程 协程 协程介绍 python 并发编程 协程 greenlet模块 python 并发编程 协程 gevent模块 python 并发编程 基于gevent模块实现并发的套接字通信 python 并发编程 协程池 python 并发编程 基于gevent模块 协程池 实现并发 阅读全文
posted @ 2019-07-11 23:07 minger_lcm 阅读(164) 评论(0) 推荐(0) 编辑
摘要: 一 greenlet模块 不敢是yield,还是greenlet都没有实现检测io,实现遇到io切换效果 如果我们在单个线程内有20个任务,要想实现在多个任务之间切换,使用yield生成器的方式过于麻烦(需要先得到初始化一次的生成器,然后再调用send。。。非常麻烦),而使用greenlet模块可以 阅读全文
posted @ 2019-07-11 23:03 minger_lcm 阅读(194) 评论(0) 推荐(0) 编辑
摘要: 协程:是单线程下的并发,又称微线程,纤程。英文名Coroutine。一句话说明什么是线程:协程是一种用户态的轻量级线程,即协程是由用户程序自己控制调度的 需要强调的是: 对比操作系统控制线程的切换,用户在单线程内控制协程的切换 优点如下: 缺点如下: 总结协程特点: 阅读全文
posted @ 2019-07-11 23:02 minger_lcm 阅读(233) 评论(0) 推荐(0) 编辑
摘要: 不应该让服务端随着 并发的客户端数量增多,而无数起线程,应该用线程池,限制线程数量,控制最大并发数 io密集型程序,最大并发数是2 客户端 服务端 阅读全文
posted @ 2019-07-08 00:07 minger_lcm 阅读(334) 评论(0) 推荐(0) 编辑
上一页 1 ··· 7 8 9 10 11 12 13 14 15 ··· 63 下一页