04 2020 档案
摘要:死锁与递归锁: 回顾之前的知识点,在介绍锁的时候跟大家提到过虽然锁只有acquire(加锁)和release(解锁)两种方式,但是还是不建议大家自己手动上锁而是用已经封装好的结构,有两个原因, 首先第一点是因为封装好的模块使用起来更加方便,第二点就是自己在使用锁的时候很容易造成逻辑上的一些错误,接下
阅读全文
摘要:开启线程的两种方式: 与开启进程方式类似也是两种方式,通过实例化和类的继承 from multiprocessing import Process from threading import Thread import time def task(name): print('%s is runnin
阅读全文
摘要:上节课补充: join方法 是让主进程等待子进程代码运行结束后在继续运行,不影响其他子进程的执行进程对象以及其他方法: 一台计算机上面运行着很多进程,那么计算机是如何区分并管理的呢? 计算机会给每一个运行的进程分配一个PID号,在windows下在命令行输入tasklist查看PID,通过task|
阅读全文
摘要:并发编程: 计算机又叫点电脑,为了代替人的工作而诞生的一种工具 操作系统发展史,第一代手工穿孔卡片,同一时间机房只有一个人在进行操作,对操作者来说是有好处的,但对等待者和cpu来说是不友好的,利用率极低 第二代出现了成批处理,首先出现的是联机批处理系统即作业的输入输出由cpu来处理,然后出现的是脱机
阅读全文
摘要:TCP粘包问题 TCP是一种流式协议,数据像水流一样,没有任何边界区分 收数据没有收干净,有残留就会和下一次结果混淆在一起所以解决的方法就是:每次都收拾干净不留任何残留什么是粘包: 首先要强调的一点是粘包指挥在TCP协议传输中出现,而不会在UDP中出现,那么他的原因要从socket收发消息原理说起
阅读全文
摘要:socket套接字: Socket是应用层与TCPIP协议族通信的中间软件抽象层,它是一组接口。在设计模式中,Socket其实就是一个门面模式,它把复杂的TCP/IP协议族隐藏在Socket接口后面,对用户来说,一组简单的接口就是全部,让Socket去组织数据,以符合指定的协议。 也有人说socke
阅读全文
摘要:socket套接字: Socket是应用层与TCPIP协议族通信的中间软件抽象层,它是一组接口。在设计模式中,Socket其实就是一个门面模式,它把复杂的TCP/IP协议族隐藏在Socket接口后面,对用户来说,一组简单的接口就是全部,让Socket去组织数据,以符合指定的协议。 也有人说socke
阅读全文
摘要:一 客户端/服务器端架构 CS架构:C客户端 S服务器端 BS架构:B浏览器端 S服务器端二 网络通信原理: 什么是互联网?:想要进行跨距离传输信息是会发生语言不通的情况,那么我们就需要一个统一的语言标准来进行通信, 一系列统一的标准,这些标准称之为互联网协议,互联网的本质就是一系列的协议 互联网协
阅读全文
摘要:1.异常处理 异常是程序发生错误的信号,程序一旦出错就会抛出异常,程序的运行随即终止 异常处理的三个特征 1.异常的追踪信息 2.异常类型 3.异常内容 为何要处理异常 为了增强程序的健壮性,即便是程序运行过程中出错了,也不要终止程序,而是捕捉异常并处理,同时记录日志 如何处理异常? 1.语法上的错
阅读全文
摘要:反射: 什么是反射?指的是在程序运行过程中可以“动态”获取对象的信息(属性和功能) 为什么用反射?python是动态语言,反射被视为动态语言的关键 如何使用反射? 实现反射机制的步骤: 1.先通过dir查看某一个对象下的属性 2.通过字符串反射到真正的属性上,得到属性值 四个内置函数的使用,通过字符
阅读全文
摘要:多继承真正的方式:mixins机制mixins机制核心:就是在多继承背景下尽可能地提升多继承的可读性ps:让多继承满足人的思维习惯=》什么"是"什么补充:通常Mixin结果的类放在左边在子类派生的新方法中如何重用父类功能? 方式一:指名道姓的调用某一个类下的函数,不依赖于继承关系 方式二:super
阅读全文
摘要:property 是个用类实现的装饰器 由来将绑定给对象的方法伪装成数据属性 使用property有效地保证了属性访问的一致性。另外property还提供设置和删除属性的功能 class People: def __init__(self,name,weight,height): self.name
阅读全文
摘要:面向过程编程,面向对象编程,函数式编程只是一种编程范式/思想面向过程 核心是过程二字 构成就是流水线 整个思想本质上就是将程序流程化 优点:将程序流程化进而将程序的设计变得简单化 缺点:可扩展性差面向对象 核心是对象二字 对象就是容器,用来盛放数据与功能 列表 字典 文件 整个思想就是将程序进行高度
阅读全文
摘要:一、logging 模块 import logging logging.basicConfig( # 1、日志输出位置:1、终端 2、文件 filename='access.log', # 不指定,默认打印到终端 # 2、日志格式 format='%(asctime)s - %(name)s - %
阅读全文