文章分类 - 4. 网络编程基础
摘要:一、IO多路复用 IO多路复用中包括 select、pool、epoll,这些都属于同步而非异步 a.select: 通过一个select()系统调用来监视多个文件描述符的数组,当select()返回后,该数组中就绪的文件描述符便会被内核修改标志位,使得进程可以获得这些文件描述符从而进行后续的读写操
阅读全文
摘要:一、概念说明 a. 用户空间与内核空间 现在操作系统都是采用虚拟存储器,对于32位操作系统而言,它的寻址空间(虚拟存储空间)为2^32=4G 操作系统的核心是内核,内核独立于普通应用程序,可以访问受保护的内存空间,也有访问底层硬件设备的所有权限,用户进程不能直接操作内核 操作系统将虚拟空间划分为内核
阅读全文
摘要:一、事件驱动 通常,我们写服务器处理模型的程序时,有以下几种模型: (1)每收到一个请求,创建一个新的进程,来处理该请求; (2)每收到一个请求,创建一个新的线程,来处理该请求; (3)每收到一个请求,放入一个事件列表,让主进程通过非阻塞I/O方式来处理请求 上面的几种方式,各有千秋, 第(1)中方
阅读全文
摘要:一、协程 协程:用户态轻量级线程,串行,无需锁 协程拥有自己的寄存器上下文和栈,能保留上一次调用时的状态,线程的上下文保存在cpu的寄存器中 CPU识别线程但不识别协程,协程由用户自己控制 好处: 无需线程上下文切换的开销 无需原子操作(不会被线程调度机制打断)锁定及同步的开销 方便切换控制流,简化
阅读全文
摘要:一、GIL 二、线程锁(互斥锁) 多数据共享(不加线程锁Python2可能出现下列情况,据说Python2每执行100条指令切换一次GIL,Python3已优化)流程图: 三、递归锁 原理:递归锁每开一把门,会在字典里面存一份数据,退出的时候根据门(key)找到这个钥匙(value)退出 四、信号量
阅读全文
摘要:paramiko模块:用于SSH连接远程服务器并执行相关操作 一、SSHClient SSHClient :用于连接远程服务器并执行基本命令 二、SFTPClient SFTPClient:用于连接远程服务器并执行上传下载
阅读全文
摘要:1 目录结构: 2 ---lib 3 |---aa.py #存在类A 4 |---testlib 5 |---bb.py #存在类B 6 ---test_in.py #执行文件 7 8 # 动态导入模块 9 # 前提条件:知道模块的字符串形式 10 # __import__导入只能从第一层开始使用 11 a...
阅读全文

浙公网安备 33010602011771号