monkey patch指的是在运行时动态替换,一般是在startup的时候.用过gevent就会知道,会在最开头的地方gevent.monkey.patch_all();把标准库中的thread/socket等给替换掉.这样我们在后面使用socket的时候可以跟平常一样使用,无需修改任何代码,但是 ...
分类:
编程语言 时间:
2018-08-02 16:01:05
阅读次数:
130
1.io模型提交任务得方式: 同步:提交完任务,等结果,执行下一个任务 异步:提交完,接着执行,异步 + 回调 异步不等结果,提交完任务,任务执行完后,会自动触发回调函数同步不等于阻塞: 阻塞:遇到io,自己不处理,os会抢走cpu ,解决办法:监测到io,gevent切换到其他任务,类似欺骗os ... ...
分类:
其他好文 时间:
2018-08-01 18:14:11
阅读次数:
150
阅读目录 一 引子 二 协程介绍 三 Greenlet模块 四 Gevent模块 印子 之前我们学习了线程、进程的概念,了解了在操作系统中进程是资源分配的最小单位,线程是CPU调度的最小单位。按道理来说我们已经算是把cpu的利用率提高很多了。但是我们知道无论是创建多进程还是创建多线程来解决问题,都要 ...
分类:
其他好文 时间:
2018-07-31 22:04:19
阅读次数:
150
线程的队列: queue队列,使用import queue,用法与进程Queue一样 queue is especially useful in threaded programming when information must be exchanged safely between multip ...
分类:
编程语言 时间:
2018-07-31 21:40:46
阅读次数:
268
#!/usr/bin/env python # Author:Zhangmingda import gevent,time def func1(): print('第一个任务开始....') gevent.sleep(2) #模拟遇到IO操作,自动切换任务 print('第一个任务干完了!') de ...
分类:
其他好文 时间:
2018-07-31 17:17:29
阅读次数:
169
[本文出自天外归云的博客园] 1、递归遍历目录下所有文件并通过finder函数定位指定格式字符串 2、用来查找字符串的finder函数是自己定义的,这里定义了一个ip_port_finder通过正则表达式查找ip:port格式(粗匹配:数字.数字.数字.数字:数字)的字符串 3、用gevent来实现 ...
分类:
编程语言 时间:
2018-07-30 21:31:17
阅读次数:
171
本节导读: 协程介绍 greenle模块 gevent模块 一 协程介绍 协程:是单线程下的并发,又称微线程,纤程。英文名Coroutine。一句话说明什么是线程:协程是一种用户态的轻量级线程,即协程是由用户程序自己控制调度的。、 需要强调的是: python的线程属于内核级别的,即由操作系统控制调 ...
分类:
其他好文 时间:
2018-07-25 20:01:00
阅读次数:
146
1、先看下整体效果 2、前端代码 1 <UserControl x:Class="iPIS.UI.Base.Tree.ImageTreeControl" 2 xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 3 xml ...
分类:
其他好文 时间:
2018-07-18 14:05:44
阅读次数:
237
阅读目录 一 引子 二 协程介绍 三 Greenlet 四 Gevent介绍 五 Gevent之同步与异步 六 Gevent之应用举例一 七 Gevent之应用举例二 一 引子 该篇文章主题是:如何基于单线程来实现并发,即只用一个主线程(很明显可利用的cpu只有一个)情况下实现并发,为此我们需要先回 ...
分类:
编程语言 时间:
2018-07-17 21:41:30
阅读次数:
196
本篇主要介绍协程相关知识,但是在学习协程之前我们需要对迭代器和生成器做更加深入的了解,随后关于实现协程的方式进行了解,其中关于生成器、greenlet模块、gevent模块(重点),最后便是关于进程、线程、携程的总结。 一、迭代器 关于迭代器已经在前面的文件中进行了介绍,但是分类是放在python的 ...
分类:
其他好文 时间:
2018-07-15 23:26:47
阅读次数:
217