一 Process类 multiprocessing模块下的一个类 创建子进程。 有两种方法 方法一 输出: 方法二 输出: 二 Thread类 threading模块下的类 创建线程 有两种方法 与Process类一样。 三 Pool类 Pool类的方法: p=Pool() p.apply_asy ...
分类:
其他好文 时间:
2018-12-18 19:38:28
阅读次数:
177
monkey patch指的是在运行时动态替换,一般是在startup的时候. 用过gevent就会知道,会在最开头的地方gevent.monkey.patch_all();把标准库中的thread/socket等给替换掉.这样我们在后面使用socket的时候可以跟平常一样使用,无需修改任何代码,但 ...
分类:
编程语言 时间:
2018-12-12 11:21:31
阅读次数:
225
1、python的多线程 多线程就是在同一时刻执行多个不同的程序,然而python中的多线程并不能真正的实现并行,这是由于cpython解释器中的GIL(全局解释器锁)捣的鬼,这把锁保证了同一时刻只有一个线程被执行。 多线程的特点: 线程比进程更轻量级,创建一个线程要比创建一个进程快10-100倍。 ...
分类:
编程语言 时间:
2018-11-10 12:44:56
阅读次数:
215
gevent 实现多任务: 结果: 使用猴子补丁,可以不用把所有耗时的,阻塞的用gevent里的代替,该怎么写就怎么写。 如:time.sleep()的使用 结果: 用gevet.joinall ...
分类:
编程语言 时间:
2018-11-08 20:49:11
阅读次数:
325
monkey patch指的是在运行时动态替换,一般是在startup的时候.用过gevent就会知道,会在最开头的地方gevent.monkey.patch_all();把标准库中的thread/socket等给替换掉.这样我们在后面使用socket的时候可以跟平常一样使用,无需修改任何代码,但是 ...
分类:
编程语言 时间:
2018-08-02 16:01:05
阅读次数:
130
1、按照测试用例的上下顺序,而不是按方法的名称的字母顺序来执行测试用例。 之前的文章链接 python修改python unittest的运行顺序 之前写的,不是猴子补丁,而是要把Test用例的类名传到run里面去执行,与原生的使用有一点区别。现在修改成,用的时候代码与原生unittest完全一模一 ...
分类:
编程语言 时间:
2018-07-25 20:09:04
阅读次数:
204
一共三个文件 a.py内容是 print('被导入') x = 1 b.py内容是 import a a.x = 2 c.py内容是 import a import b print(a.x) 现在运行c文件,这个结果出乎很多人的意料大部分python人员都猜不对,结果是 1、可以发现a模块被两个地方 ...
分类:
编程语言 时间:
2018-07-25 16:16:05
阅读次数:
166
1.在运行时,对属性,方法,函数等进行动态替换 2.其目的往往是为了通过替换,修改来增强,扩展原有代码的能力 #test2.py class Person: def get_score(self): ret = {'english':80,'history':100,'chinese':150} r... ...
分类:
编程语言 时间:
2018-05-19 19:09:52
阅读次数:
258
当一个类中的属性条件不满足我们的需求时,考虑到为了不破坏封装,从而对其属性进行增加的实现,就有了以下几种方法 猴子补丁 #Person类get_score方法是从数据库拿数据,但是不方便测试,使用猴子补丁,替换了get_score方法,返回模拟的数据 属性装饰器 #特别注意:这三个方法同名 #pro ...
分类:
其他好文 时间:
2017-11-12 17:55:03
阅读次数:
175
"""#[备注]#1??try :仅当try块中没有异常抛出时才运行else块。#2??for:仅当for循环运行完毕(即for循环没有被break语句终止)才运行else#while:仅当while循环因为条件为假植而退出时(即while循环没有被break语句终止)才运行else#即在所有情况下 ...
分类:
编程语言 时间:
2017-10-25 00:57:00
阅读次数:
176