2017年12月13日
摘要: 协程:微线程,协程是一种用户态的轻量级线程。遇到IO操作就切换。代码前戏:使用yield实现协程的简单例子 # 这里输出是同时打印所有返回结果,就是协程的简单例子 协程特点: 1、必须在只有一个单线程里实现并发2、修改共享数据不需加锁3、用户程序里自己保存多个控制流的上下文栈4、一个协程遇到IO操作 阅读全文
posted @ 2017-12-13 21:49 super2feng 阅读(152) 评论(0) 推荐(0)
摘要: 进程锁意义:由于输出的屏幕对于进程来说是共享的,多进程在输出的时候可能造成输出乱序,因此需要进程锁来保证只有一个进程在输出到屏幕。代码范例1:进程锁举例 进程池:维护一个进程序列。实质是序列内的进程都已启动,但只有指定数量的进程可以同时被执行。(下例中同时有10个进程被启动,在并行的情况下只有5个进 阅读全文
posted @ 2017-12-13 20:37 super2feng 阅读(484) 评论(0) 推荐(0)
摘要: · 进程与进程之间是相互独立的,它们之间的数据交互需要有一个中间介质。代码范例1:父进程与子进程之间的数据交互(Queue) 代码范例2:进程与进程之间的数据交互(Pipe) 代码范例3:进程间数据共享 # 输出: [0, 1, 2, 3, 4, 7460] [0, 1, 2, 3, 4, 7460 阅读全文
posted @ 2017-12-13 20:33 super2feng 阅读(1161) 评论(0) 推荐(0)
摘要: · IO操作不占CPU,计算占用CPU· python多线程不适合CPU密集型(1+1)操作的任务,适合IO(socketserver)密集型的任务。代码范例1:简单的进程实现 # 注意:进程使用与线程类似,但实例化之前一定要加上if __name__ == '__main__': 代码范例2: # 阅读全文
posted @ 2017-12-13 20:28 super2feng 阅读(276) 评论(0) 推荐(0)
2017年12月7日
摘要: 定时器(Timer):用于在指定的秒数后调用函数。使用Python定时器时需要注意如下4个方面:(1)定时器构造函数主要有2个参数,第一个参数为时间,第二个参数为函数名,第一个参数表示多长时间后调用后面第二个参数指明的函数。第二个参数传入函数名即可,不用带()(2)必须在定时器执行函数内部重复构造定 阅读全文
posted @ 2017-12-07 23:05 super2feng 阅读(875) 评论(0) 推荐(0)
2017年12月6日
摘要: 实现线程与线程之间的交互。主要方法有:threading.Event():实例化event.set():设置标志位event.clear():清除标志位event.is_set():判断标志位是否被设置event.wait():等待标志位被设置 交通信号灯举例: 阅读全文
posted @ 2017-12-06 14:03 super2feng 阅读(166) 评论(0) 推荐(0)
摘要: 队列在线程编程时特别有用,因为信息必须在多个线程之间安全地交换。队列作用:1、解耦;2、提高运行效率。 import queue常用方法:queue.Queue(maxsize=0) #先入先出queue.LifoQueue(maxsize=0) #Lifo: last in fisrt out,表 阅读全文
posted @ 2017-12-06 13:58 super2feng 阅读(175) 评论(0) 推荐(0)
2017年12月3日
摘要: 同时开启50个线程,并计算程序总耗时: · threading.current_thread():当前线程类型· threading.active_count():当前线程数量· 守护线程:守护线程是不重要的,在进程退出的时候,不用等待这个线程退出。 程序在除守护线程外的所有线程执行完毕后就退出。将 阅读全文
posted @ 2017-12-03 14:50 super2feng 阅读(127) 评论(0) 推荐(0)
摘要: import paramiko· 该模块基于SSH用于连接远程服务器并执行相关命令操作。1、ssh范例: import paramiko ssh = paramiko.SSHClient() #创建SSH对象 ssh.set_missing_host_key_policy(paramiko.Auto 阅读全文
posted @ 2017-12-03 14:48 super2feng 阅读(133) 评论(0) 推荐(0)
2017年11月29日
摘要: python不允许导入字符串形式的模块名,如下式会报错:from lib import 'aa'此时就要用到动态导入模块:import importlibaa = importlib.import_module("lib.aa")使用时直接可调用aa里面的函数obj:aa.obj() 阅读全文
posted @ 2017-11-29 22:17 super2feng 阅读(94) 评论(0) 推荐(0)