上一页 1 ··· 168 169 170 171 172 173 174 175 176 ··· 234 下一页

2018年12月18日

Twisted 简介

摘要: Twisted是用Python实现的基于事件驱动的网络引擎框架,Twisted支持许多常见的传输及应用层协议,包括TCP、UDP、SSL/TLS、HTTP、IMAP、SSH、IRC以及FTP。就像Python一样,Twisted也具有“内置电池”(batteries-included)的特点。Twi 阅读全文

posted @ 2018-12-18 18:05 ExplorerMan 阅读(340) 评论(0) 推荐(0)

Python进程、线程、协程的对比

摘要: 1. 执行过程 每个线程有一个程序运行的入口、顺序执行序列和程序的出口。但是线程不能够独立执行,必须依存在进程中,由进程提供多个线程执行控制。每个线程都有他自己的一组CPU寄存器,称为线程的上下文,该上下文反映了线程上次运行该线程的CPU寄存器的状态。 协程,又称微线程,Coroutine。执行过程 阅读全文

posted @ 2018-12-18 18:04 ExplorerMan 阅读(540) 评论(0) 推荐(0)

协程的优点(Python)

摘要: 协程的优点: 协程是进程和线程的升级版,进程和线程都面临着内核态和用户态的切换问题而耗费许多切换时间, 而协程就是用户自己控制切换的时机,不再需要陷入系统的内核态。协程的执行效率非常高。因为子程序切换不是线程切换,而是由程序自身控制。因此,没有线程切换的开销,和多线程相比,线程数量越多,相同数量的协 阅读全文

posted @ 2018-12-18 18:01 ExplorerMan 阅读(943) 评论(0) 推荐(0)

python concurrent.futures

摘要: python因为其全局解释器锁GIL而无法通过线程实现真正的平行计算。这个论断我们不展开,但是有个概念我们要说明,IO密集型 vs. 计算密集型。 IO密集型:读取文件,读取网络套接字频繁。 计算密集型:大量消耗CPU的数学与逻辑运算,也就是我们这里说的平行计算。 而concurrent.futur 阅读全文

posted @ 2018-12-18 17:52 ExplorerMan 阅读(364) 评论(0) 推荐(0)

gevent 协程 使用

摘要: Python通过yield提供了对协程的基本支持,但是不完全。而第三方的gevent为Python提供了比较完善的协程支持。 gevent是第三方库,通过greenlet实现协程,其基本思想是: 当一个greenlet遇到IO操作时,比如访问网络,就自动切换到其他的greenlet,等到IO操作完成 阅读全文

posted @ 2018-12-18 17:46 ExplorerMan 阅读(286) 评论(0) 推荐(0)

python高性能代码之多线程优化

摘要: 以常见的端口扫描器为实例 端口扫描器的原理很简单,操作socket来判断连接状态确定主机端口的开放情况。 这是一个socket扫描器的基本代码。 但是如果直接运行会等待很长时间都没有反应,这是因为socket是阻塞的,到等待每个连接超时后才会进入下一个连接。 给这段代码加一个超时 完整的代码如下 本 阅读全文

posted @ 2018-12-18 17:38 ExplorerMan 阅读(977) 评论(0) 推荐(0)

python并发编程之多进程、多线程、异步和协程

摘要: 一、多线程 多线程就是允许一个进程内存在多个控制权,以便让多个函数同时处于激活状态,从而让多个函数的操作同时运行。即使是单CPU的计算机,也可以通过不停地在不同线程的指令间切换,从而造成多线程同时运行的效果。 多线程相当于一个并发(concunrrency)系统。并发系统一般同时执行多个任务。如果多 阅读全文

posted @ 2018-12-18 17:28 ExplorerMan 阅读(681) 评论(0) 推荐(0)

Python进程间通信Queue

摘要: 1.Queue使用方法: Queue.qsize():返回当前队列包含的消息数量; Queue.empty():如果队列为空,返回True,反之False ; Queue.full():如果队列满了,返回True,反之False; Queue.get():获取队列中的一条消息,然后将其从列队中移除, 阅读全文

posted @ 2018-12-18 17:19 ExplorerMan 阅读(321) 评论(0) 推荐(0)

提高你的Python: 解释‘yield’和‘Generators(生成器)’

摘要: 在开始课程之前,我要求学生们填写一份调查表,这个调查表反映了它们对Python中一些概念的理解情况。一些话题("if/else控制流" 或者 "定义和使用函数")对于大多数学生是没有问题的。但是有一些话题,大多数学生只有很少,或者完全没有任何接触,尤其是“生成器和yield关键字”。我猜这对大多数新 阅读全文

posted @ 2018-12-18 16:28 ExplorerMan 阅读(335) 评论(0) 推荐(0)

尴尬的事情又发生Newtonsoft.Json vs Protobuf.net

摘要: 写程序做下性能测试都是例行的事情了,一般在普通电脑上测试一下如果比较理想那基本不出什么意外!但世事难料,代码写得不好经常担心CPU不够用,其实写得好但不能完全发挥出CPU资源的优势更是一件悲剧的事情!这次事件已经发生了两回,其实还真的很折磨人的。话不多说回到今天的正题Newtonsoft.Json  阅读全文

posted @ 2018-12-18 14:43 ExplorerMan 阅读(285) 评论(0) 推荐(0)

上一页 1 ··· 168 169 170 171 172 173 174 175 176 ··· 234 下一页

导航