04 2020 档案
摘要:[TOC] 一、存储数据的演变过程 随意地存到一个文件中、数据格式也是千差万别的,完全取决于我们自己 1.1 软件开发目录规范 ( 限制了存储数据的具体位置 ) 假设基于上述是一个单机游戏,那么每个人的游戏记录只会在自己的计算机上面保存,注册登录的账号也只能在自己的计算机上有效,如何将单机变成连网
阅读全文
摘要:[TOC] dll 原理解析 一、什么是dll 动态链接库英文为 DLL ,是 Dynamic Link Library 的缩写。DLL是一个包含可由多个程序,同时使用的代码和数据的库。在Windows中,这种文件被称为应用程序拓展。例如,在 Windows操作系统中,Comdlg32.dll 执行
阅读全文
摘要:[TOC] IO模型 一、前言 我们这里研究的IO模型都是针对网络IO的模型,我们一共列出了五种IO 模型: blocking IO 阻塞IO nonblocking IO 非阻塞IO IO multiplexing IO多路复用 signal driven IO 信号驱动IO asynchrono
阅读全文
摘要:[TOC] 协程理论 一、协程的概念以及准备工作 进程 :资源单位 线程: 执行单位 协程 :这个概念完全是程序员自己发明出来的,根本不存在 进程和线程 大家平时了解的都比较多,而协程算是一种轻量级进程,但又不能叫进程,因为操作系统并不知道它的存在。什么意思呢,就是说,协程像是一种在程序级别来模拟系
阅读全文
摘要:[TOC] 一、线程q(优先级) 同一个进程下多个线程数据是共享的 为什么先同一个进程下还会去使用队列呢? 因为队列是: 管道 + 锁 所以用队列还是为了保证数据的安全 注意 : 1.put括号内放一个元组 第一个放数字表示优先级 2.需要注意的是 数字越小优先级越高!!! 二、进程池与线程池 先回
阅读全文
摘要:[TOC] 锁的补充 一、死锁与递归锁 当你知道锁的使用抢锁必须要释放锁,其实你在操作锁的时候也极其容易产生死锁现象(整个程序卡死阻塞) 1.1 死锁 1.2 递归锁 递归锁的特点: 1. 可以被连续的acquire和release 2. 只能被第一个抢到这把锁执行上述操作 3. 它的内部有一个计数
阅读全文
摘要:一、开启线程的两种方式 from multiprocessing import Process from threading import Thread import time def task(name): print('%s is running'%name) time.sleep(1) pri
阅读全文
摘要:[TOC] 线程理论 一、线程的概念 线程 是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。在Unix System V及SunOS中也被称为轻量进程(lightwei
阅读全文
摘要:[TOC] 进程间通信 一、队列Queue模块 管道:subprocess stdin stdout stderr 队列: 管道+锁,先进先出 堆栈: 先进后出 二、IPC机制 研究思路: 1.主进程跟子进程借助于队列通信 2.子进程跟子进程借助于队列通信
阅读全文
摘要:[TOC] 互斥锁 一、概念 多个进程操作同一份数据的时候,会出现数据错乱的问题。进程之间的数据不共享,但可共享同一资源,所以访问同一文件,或同一个打印终端,是没有问题的,而共享带来的是竞争,竞争的结果就会产生错乱 二、案例 从结果可以看出并发运行,效率虽然高,但并发竞争资源带来了打印信息错乱。 三
阅读全文
摘要:[TOC] 僵尸进程和孤儿进程 一、基本概念 我们知道在unix/linux中,正常情况下,子进程是通过父进程创建的,子进程在创建新的进程。子进程的结束和父进程的运行是一个异步过程,即父进程永远无法预测子进程 到底什么时候结束。 当一个 进程完成它的工作终止之后,它的父进程需要调用wait()或者w
阅读全文
摘要:[TOC] 守护进程 无论是进程还是线程,都遵循:守护进程/线程会等待主进程/线程运行完毕后被销毁。需要强调的是:运行完毕并非终止运行。 1. 对主进程来说,运行完毕指的是主进程代码运行完毕 2. 对主线程来说,运行完毕指的是主线程所在的进程内所有非守护线程统统运行完毕,主线程才算运行完毕 一、详细
阅读全文
摘要:[TOC] 作业 第一题 简述操作系统发展史 第二题 简述进程发展史及算法演变 先来先服务调度算法 短作业优先调度算法 时间片轮转法+多级反馈队列 第三题 简述多道技术 多道程序设计技术,就是指允许多个程序同时进入内存并运行。即同时把多个程序放入内存,并允许它们交替在CPU中运行,它们共享系统中的各
阅读全文
摘要:[TOC] 进程理论 一、必备知识点 1.1 程序与进程的区别 1.2 进程调度 先来先服务调度算法 短作业优先调度算法 时间片轮转法+多级反馈队列 1.3 进程运行的三状态图 1.4 同步和异步 同步和异步 阻塞非阻塞 上述概念的组合:最高效的一种组合就是 异步非阻塞 二、开启进程的两种方式 代码
阅读全文
摘要:[TOC] 操作系统发展史 一、手工操作 —— 穿孔卡片 1946年第一台计算机诞生 20世纪50年代中期,计算机工作还在采用手工操作方式。此时还没有操作系统的概念。 程序员将对应于程序和数据的已穿孔的纸带(或卡片)装入输入机,然后启动输入机把程序和数据输入计算机内存,接着通过控制台开关启动
阅读全文
摘要:[TOC] 作业 编写cs架构的软件,实现客户端可以下载服务端的文件,如图片、视频、文本等
阅读全文
摘要:[TOC] socketservice模块的使用 一、基于tcp协议的使用 二、基于udp协议的使用
阅读全文
摘要:一、基于tcp协议的简单通信套接字编程 #客户端、 import socket #1、买手机 phone=socket.socket(socket.AF_INET,socket.SOCK_STREAM) # 流式协议=》tcp协议 #2、拨通服务端电话 phone.connect(('127.0.0
阅读全文
摘要:一、什么是异常 异常就是程序运行时发生错误的信号,在python中,错误触发的异常如下 二、异常种类 在python中不同的异常可以用不同的类型(python中统一了类与类型,类型即类)去标识,不同的类对象标识不同的异常,一个异常标识一种错误 常见异常: AttributeError 试图访问一个对
阅读全文
摘要:[TOC] 粘包问题 一、什么是粘包 注意:只有TCP有粘包现象,UDP永远不会粘包,因为TCP是基于数据流的协议,而UDP是基于数据报的协议 发送端可以是一K一K地发送数据,而接收端的应用程序可以两K两K地提走数据,当然也有可能一次提走3K或6K数据,或者一次只提走几个字节的数据,也就是说,应用程
阅读全文
摘要:[TOC] 七层协议和五层模型 一、 OSI七层和TCP/IP四层的关系 OSI引入了服务、接口、协议、分层的概念,TCP/IP借鉴了OSI的这些概念建立TCP/IP模型。 OSI先有模型,后有协议,先有标准,后进行实践;而TCP/IP则相反,先有协议和应用再提出了模型,且是参照的OSI模型。 OS
阅读全文
摘要:[TOC] 互联网及其组成 一、互联网的组成(教材版) 互联网的拓扑结构非常复杂 ,并且在地理位置上覆盖了全球,从工作方式上看,可以划分为两大块: 1. 边缘部分:这部分由所有连接在互联网上的主机组成。这部分是用户直接使用的,用来进行通信和资源共享。 2. 核心部分:由大量网络和连接这些网络的路由器
阅读全文
摘要:[TOC] 网络架构及演变过程 一、单机架构 应用领域: 植物大战僵尸 office 二、CS架构 应用领域: QQ 大型网络游戏 计算机发展初期用户去取数据,直接就去主机拿,从这里开始就分出了客户端和服务端。 客户端:用户安装的软件; 服务端:统一管理数据库的主机中的软件就叫做服务端,再后来服务端
阅读全文
摘要:[TOC] 元类及查找顺序 一、引言 元类属于python面向对象编程的深层魔法,99%的人都不得要领,一些自以为搞明白元类的人其实也只是自圆其说、点到为止,从对元类的控制上来看就破绽百出、逻辑混乱,今天我就来带大家来深度了解python元类的来龙去脉。 笔者深入浅出的背后是对技术一日复一日的执念,
阅读全文
摘要:[TOC] 反射 一、反射在类中的使用 反射就是通过字符串来操作类或者对象的属性 反射本质就是在使用内置函数,其中反射有以下四个内置函数 1.1 应用 需求:通过用户输入命令启动功能 二、反射在模块中的使用 2.1 前言 我们要导入另外一个模块,可以使用import.现在有这样的需求,我动态输入一个
阅读全文
摘要:[TOC] 类的多态和多态性 很多人喜欢将多态与多态性二者混为一谈,然后百思不得其解,其实只要分开看,就会很明朗。 一、多态 多态指的是一类事物有多种形态,(一个抽象类有多个子类,因而多态的概念依赖于继承) 1. 序列数据类型有多种形态:字符串,列表,元组 2. 动物有多种形态:人,狗,猪 1.1
阅读全文
摘要:[TOC] 绑定方法和非绑定方法 类中定义的方法大致可以分为两类:绑定方法和非绑定方法。其中绑定方法又可以分为绑定到对象的方法和绑定到类的方法。 一、绑定方法 1.1 对象的绑定方法 在类中没有被任何装饰器修饰的方法就是 绑定到对象的方法,这类方法专门为对象定制。 speak即为绑定到对象的方法,这
阅读全文
摘要:[TOC] super()方法详解 一、单独调用父类的方法 需求:编写一个类,然后再写一个子类进行继承,使用子类去调用父类的方法1。 使用方法1打印: 胖子老板,来包槟榔。 那么先写一个胖子老板的父类,执行一下: 运行一下这个胖子老板父类的构造方法__init__ 如下: 好了,那么下面来写一个子类
阅读全文
摘要:[TOC] 如何在子类派生的新方法中重用父类的功能 一、方法一:与继承无关 指名道姓法,直接用类名.函数名的方法 注意只能当普通函数用,需要把所有的值传入 二、方式二:严格来继承属性查找关系 super()会得到一个特殊的对象,该对象就是专门用来访问父类中的属性的(按照继承的关系 ) super()
阅读全文
摘要:[TOC] Python的Mixins机制 大多数面向对象语言都不支持多重继承,因为这会导致菱形问题, 而 Python 虽然形式上支持多重继承,但其实现机制却是利用 mixin,从而有效 地避免了菱形问题。 一、什么是 mixin Mixin本意是混入,程序中用来将不同功能(functionali
阅读全文
摘要:[TOC] 作业 第一题 试验菱形问题下的属性查找顺序 第二题 在昨天作业的基础之上 1. 引入属性访问控制+property 2. 引入继承与派生的概念来减少代码冗余 注意:要满足什么"是"什么的关系,不满足"是"的关系不要去继承 代码实现: 功能测试: 结果展示:
阅读全文
摘要:[TOC] 一、类的分类 1.1 新式类 继承了object的类以及该类的子类,都是新式类 Python3中所有的类都是新式类 1.2 经典类 没有继承object的类以及该类的子类,都是经典类 只有Python2中才有经典类 二、菱形继承问题 在Java和C 中子类只能继承一个父类,而Python
阅读全文
摘要:[TOC] 一、什么是继承 继承是一种新建类的方式,新建的类称为子类,被继承的类称为父类 继承的特性是:子类会遗传父类的属性 继承是类与类之间的关系 二、为什么用继承 使用继承可以减少代码的冗余 三、对象的继承 Python中支持一个类同时继承多个父类 使用__bases__方法可以获取对象继承的类
阅读全文
摘要:[TOC] 一、封装的概念和意义 1.1 封装 从封装字面上去理解,封装就好像是拿来一个麻袋,把很多的东西一起装进麻袋,然后把麻袋封上口子。按照这种逻辑看,封装=‘隐藏’,这种理解是相当片面的 在程序中, 封装 封装是面向对象的三大特征之一,它指的是将对象的状态信息隐藏在对象内部,不允许外部直接访问
阅读全文
摘要:[TOC] 一、属性查找顺序 类有两种属性:数据属性和函数属性 1. 类的数据属性是所有对象共享的 2. 类的函数属性是绑定给对象用的 查找顺序: 首先从自身查找,没找到往类中找,类中没有则会报错。即对象的属性查找顺序为:自身 类 报错
阅读全文
摘要:[TOC] 一、类和对象 类的意思:种类、分类、类别,是面向对象设计最重要的概念,对象是特征与技能的结合体,而类则是一系列对象相似的特征与技能的结合体 对象是特征与技能的结合体,我可能有身高体重、而你也有身高体重,所以你会说你像我,但是你一定不会说你像阿猫阿狗。并且我和你其实就可以说成是一类,而你和
阅读全文
摘要:[TOC] 一、面向过程编程 详细见博客 面向过程思想:https://www.cnblogs.com/LWX YEER/p/12577205.html 面向过程变成的核心是过程二字,过程指的是解决问题的步骤,即先干什么再干什么然后干什么…… 基于面向过程编程的思想编写程序好比在设计一条流水线,是一
阅读全文
摘要:[TOC] 一、概述 1.1 1940年以前:面向机器 最早的程序设计都是采用机器语言来编写的,直接使用二进制码来表示机器能够识别和执行的指令和数 据。简单来说,就是直接编写 0 和 1 的序列来代表程序语言。例如:使用 0000 代表 加载(LOAD),0001 代表 存储(STORE)等。 机器
阅读全文
摘要:[TOC] ATM+购物车项目实现 三层架构图: 创建功能字典: db/log文件夹路径: logging配置,定义三种日志输出格式 定义日志输出格式 结束 日志配置: 银行接口: 购物接口 用户接口: 公共方法: 启动程序
阅读全文
摘要:[TOC] ATM+购物车 一、项目设计步骤 二、目录格式 三、源码 2.1 settings 2.2 db_handler 2.3 bank 2.4 store 2.5 user 2.6 common 2.7 run 四、代码统计
阅读全文
摘要:[TOC] 一、正则表达式 正则表达式本身是一种小型的、高度专业化的编程语言,它并不是Python的一部分。正则表达式是用于处理字符串的强大工具,拥有自己独特的语法以及一个独立的处理引擎,效率上可能不如str自带的方法,但功能十分强大。得益于这一点,在提供了正则表达式的语言里,正则表达式的语法都是一
阅读全文