随笔分类 -  Python

摘要:一、进程池与线程池 基本使用: 进程池和线程池操作一样 提交任务的两种方式: 同步调用:提交完一个任务之后,就在原地等待,等待任务完完整整地运行完毕拿到结果后,再执行下一行代码,会导致任务是串行执行的 异步调用:提交完一个任务之后,不在原地等待,结果???,而是直接执行下一行代码,会导致任务是并发执 阅读全文
posted @ 2018-09-10 19:16 藏岚 阅读(196) 评论(0) 推荐(0)
摘要:一、GIL全局解释器锁 1. 什么是GIL全局解释器锁 GIL本质就是一把互斥锁,相当于执行权限 在Cpython解释器下,如果想实现并行可以开启多个进程 2. 为何要有GIL 我们首先要知道,一个多线程是怎么执行的,假设在一个进程中有三个线程,线程中是要运行的代码。 ①如果要运行代码,就必须要先获 阅读全文
posted @ 2018-09-07 16:20 藏岚 阅读(168) 评论(0) 推荐(0)
摘要:一、进程补充 1.进程间通信(IPC机制) 进程间通讯有两种方法:管道或者队列。 1 队列和管道都是将数据存放于内存中 2 队列又是基于(管道+锁)实现的,可以让我们从复杂的锁问题中解脱出来。 block默认是True,意思是可以阻塞。timeout是阻塞时间,阻塞时间到了会报错 那么什么情况下会阻 阅读全文
posted @ 2018-09-06 17:02 藏岚 阅读(191) 评论(0) 推荐(0)
摘要:一、开启进程的两种方法 方法一 方法二 二、join方法 三、进程之间内存空间互相隔离 虽然进程之间是空间上的复用,但是在内存中其实每个进程之间都是在物理层面上隔开的,接下来就用代码来验证 四、进程对象其他相关的属性或方法 五、僵尸进程与孤儿进程 僵尸进程 一个进程使用fork创建子进程,如果子进程 阅读全文
posted @ 2018-09-05 15:33 藏岚 阅读(176) 评论(0) 推荐(0)
摘要:一、基于UDP的套接字 UDP(user datagram protocol,用户数据报协议)是无连接的,面向消息的,提供高效率服务。不会使用块的合并优化算法,, 由于UDP支持的是一对多的模式,所以接收端的skbuff(套接字缓冲区)采用了链式结构来记录每一个到达的UDP包,在每个UDP包中就有了 阅读全文
posted @ 2018-09-04 17:13 藏岚 阅读(179) 评论(0) 推荐(0)
摘要:链接循环与通信循环 服务端 客户端 远程控制 服务端 客户端 粘包问题 服务端 客户端 文件上传与下载 common 服务端 客户端 阅读全文
posted @ 2018-09-03 18:35 藏岚 阅读(145) 评论(0) 推荐(0)
摘要:三次握手原理 TCP协议在传输之前会进行三次沟通,一般称为“三次握手” 第一次握手:客户端此时的状态为SYN_SENT,客户端会先向服务器发送 序号为seq=x的SYN =1请求,说‘我想连接到服务器,可不可以’; 第二次握手:服务器收到后,此时的状态由原来的监听状态LISTEN变为SYN_RCVD 阅读全文
posted @ 2018-08-29 18:34 藏岚 阅读(197) 评论(0) 推荐(0)
摘要:单例 单例模式:多次实例化的结果指向同一个实例 单例模式实现方式一: 单例模式实现方式二:装饰器 单例模式实现方式三: '''# 单例模式实现方式四: singleton.py 网络编程介绍 1. 目标:编写一个C/S架构的软件 C/S: Client 基于网络 Server B/S: Browse 阅读全文
posted @ 2018-08-28 17:29 藏岚 阅读(165) 评论(0) 推荐(0)
摘要:异常处理 1. 什么是异常处理 异常是错误发生的信号,一旦程序出错就会产生一个异常,如果该异常 没有被应用程序处理,那么该异常就会抛出来,程序的执行也随之终止 异常包含三个部分: 1. traceback异常的追踪信息 2. 异常的类型 3. 异常的信息 错误分为两大类: 1. 语法上的错误:在程序 阅读全文
posted @ 2018-08-27 20:22 藏岚 阅读(234) 评论(0) 推荐(0)
摘要:isinstance与issubclass issubclass:判断子类是否属于父类,是则返回True,否则返回False isinstance:判断对象是否属于类,是则返回True,否则返回False 反射 内置方法 阅读全文
posted @ 2018-08-23 19:08 藏岚 阅读(147) 评论(0) 推荐(0)
摘要:一: 绑定方法:绑定给谁就应该由谁来调用,谁来调用就会将谁当做第一个参数传入 1. 绑定给对象的方法: 类中定义的函数默认就是绑定给对象的 2. 绑定给类的方法: 为类中定义的函数加上一个装饰器classmethod 二: 非绑定方法: 既不与类绑定,又不与对象绑定,意味着对象和类都可以来调用,无论 阅读全文
posted @ 2018-08-22 18:37 藏岚 阅读(157) 评论(0) 推荐(0)
摘要:组合 1. 什么是组合 组合指的是某一个对象拥有一个属性,该属性的值是另外一个类的对象 2. 为何要用组合 通过为某一个对象添加属性(属性的值是另外一个类的对象)的方式,可以间接地将两个类关联/整合/组合到一起 从而减少类与类之间代码冗余 3. 如何用组合 多态与多态性 1. 什么是多态 多态指的是 阅读全文
posted @ 2018-08-21 15:25 藏岚 阅读(248) 评论(0) 推荐(0)
摘要:继承 1 什么是继承 继承一种新建类的方式,新建的类称之为子类/派生类,被继承的类称之为父类\基类\超类 python中继承的特点: 1. 子类可以遗传/重用父类的属性 2. python中一个子类可以同时继承多个父类 3. 在继承背景下去说,python中的类分为两种:新式类,经典类 新式类: 但 阅读全文
posted @ 2018-08-20 16:09 藏岚 阅读(162) 评论(0) 推荐(0)
摘要:面向过程的编程思想 核心过程二字,过程指的是解决问题的步骤,即先干什么\再干什么\后干什么 基于该思想编写程序就好比在设计一条流水线,是一种机械式的思维方式 优点:复杂的问题流程化\进而简单化 缺点:可扩展性差 面向对象的编程思想 核心是对象二字,对象是特征与技能的结合体 基于该思想编写程序(脑子始 阅读全文
posted @ 2018-08-17 14:40 藏岚 阅读(137) 评论(0) 推荐(0)
摘要:re模块 E是什么 正则 表达 式子 就是一些带有特殊含义的符号或者符号的组合 它的作用是对字符串进行过滤 在一堆字符串中找到你所关心的内容 你就需要告诉计算机你的过滤规则是什么样 通过什么方式来告诉计算机 就通过正则表达式 第一步 学习正则表达式 各种符号所表示的含义 re模块的内部实现 不是py 阅读全文
posted @ 2018-08-14 14:31 藏岚 阅读(136) 评论(0) 推荐(0)
摘要:shelve 什么是shelve模块 也是一种序列化方式 使用方法 1.opne 2.读写 3.close 特点:使用方法比较简单 提供一个文件名字就可以开始读写 读写的方法和字典一致 你可以把它当成带有自动序列化功能的字典 原理: 内部使用的就是pickle 所以 也存在跨平台性差的问题 你自己存 阅读全文
posted @ 2018-08-13 15:00 藏岚 阅读(125) 评论(0) 推荐(0)
摘要:包 1. 什么是包 包就是一个包含有__init__.py文件的文件夹 包本质就是一种模块,即包是用包导入使用的,包内部包含的文件也都是用来被导入使用 2 为何要用包 包是文件夹,那文件夹就是用来组织文件的 在python2中,包下必须有一个__init__.py文件,而python3中即便是没有也 阅读全文
posted @ 2018-08-10 16:47 藏岚 阅读(161) 评论(0) 推荐(0)
摘要:TIME模块 time模块 与时间相关的功能 在python中 时间分为3种 1.时间戳 timestamp 从1970 1 月 1日 到先在的秒数 主要用于计算两个时间的差 2.localtime 本地时间 表示的是计算机当前所在的位置 3.UTC 世界协调时间 时间戳 结构化 格式化字符 imp 阅读全文
posted @ 2018-08-09 14:35 藏岚 阅读(153) 评论(0) 推荐(0)
摘要:模块的循环导入问题 run.py执行文件 # import m1 # 第一次导入 # 验证解决方案一:'''正在导入m1正在导入m2'''# print(m1.x)# print(m1.y) # 验证解决方案二:import m1 # 第一次导入 '''正在导入m1''' # print(m1.x) 阅读全文
posted @ 2018-08-08 15:01 藏岚 阅读(153) 评论(0) 推荐(0)
摘要:模块 1 什么是模块 模块就是一系列功能的集合体 模块有三种来源 1. 内置的模块 2. 第三方的模块 3. 自定义模块 模块的格式: 1 使用python编写的.py文件 2 已被编译为共享库或DLL的C或C++扩展 3 把一系列模块组织到一起的文件夹(注:文件夹下有一个__init__.py文件 阅读全文
posted @ 2018-08-07 18:16 藏岚 阅读(108) 评论(0) 推荐(0)