自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(47)
  • 收藏
  • 关注

原创 mysql-(innodb引擎)-锁

文章目录锁lock 与 latchinnodb中的锁锁的类型一致性非锁定读一致性锁定读自增长与锁外键与锁锁算法锁问题阻塞死锁锁升级锁lock 与 latchlatch轻量级锁,要求遂定时间非常短分为mutex(互斥量),rwlock(读写锁)目的是保证并发线程操作临界资源的正确性,通常没有死锁检测机制lock对象是事务,用于锁定数据库中的对象具有死锁机制比较innodb中的锁锁的类型共享锁 S :允许事务读取一行数据排他锁 X :允许事务删除或更新一行数

2021-06-03 11:37:05 227

转载 mysql-(innodb引擎)-mysql底层框架

文章目录Innodb存储引擎Innodb文件Innodb表Innodb事务innodb索引与算法Innodb锁Innodb存储引擎Innodb文件Innodb表Innodb事务innodb索引与算法Innodb锁

2021-06-03 11:22:10 199

原创 django(基础篇) rest_framework

文章目录前言FBV & CBVrestful 规范django rest frameworkdrf view 的继承关系APIViewGenericViewsMixinsGenericViews 与 MixinsViewSets前言这里只是简单的介绍了一下django下rest framework,具体的一些使用内部实现等还需要自己探究FBV & CBVFBV基于函数的视图CBV基于类的视图python 中 通过反射执行: 基于反射实现根据请求方式不同,执行不同

2021-04-30 10:49:56 983 7

原创 MYSQL(基础篇)-常用语句

文章目录常用语句增删查selectdistinctlimitorder by (desc 降序,asc 升序默认)whereand,or,not,inlikeregexpas数据处理函数改常用语句增删查select检索数据select * from table_namedistinct检索时只返回不同的行应用于所有列而不仅仅是所有列select distinct attr_name1, attr_name2 from table_namelimit限制返回的行数sele

2021-04-20 14:25:07 171

原创 计算机操作系统(基础篇)-进程管理

文章目录进程与线程进程与线程

2021-04-02 14:00:46 274

原创 计算机操作系统(基础篇)-基本特性与功能

文章目录操作系统基本特性并发共享共享方式虚拟异步主要功能进程管理内存管理设备管理文件管理操作系统基本特性并发并发与并行概念并发两个或多个事件在同一时间间隔内发生并行两个或者多个事件在同一时刻发生进程系统中能独立运行并作为资源分配的基本单位由一组机器指令、数据、堆栈等组成,是一个能独立运行的活动实体共享共享方式互斥共享方式临界资源:在一段时间内只允许一个进程访问的资源同时访问方式时分复用空分复用虚拟异步主要功能

2021-03-27 13:00:48 217

原创 计算机操作系统(基础篇)-调用、异常、中断

文章目录调用、异常、中断对比过程中断异常系统调用调用、异常、中断对比系统调用:应用程序主动向操作系统发出服务请求(来源:应用程序)异常:非法指令或者其他坏的处理状态(来源:应用程序意想不到的行为)中断:来自不同的硬件设备的计时器和网络的中断 (来源:外设)概念来源处理时间响应调用应用程序主动向操作系统发出服务请求应用程序异步或同步等待和持续异常非法指令或者其他坏的处理状态应用程序意想不到的行为同步杀死或者重新执行意想不到的应用程序指令中

2021-03-24 17:53:52 311

原创 计算机网络(基础篇)-传输层

文章目录传输层端口UDPUDP首部特点TCP可靠传输流量控制拥塞控制三次握手传输层管理端到端的通信连接端口使用端口来标记不同的网络进程端口使用16比特位表示(0~65535)常用端口UDP数据 不合并 不拆分UDP首部特点UDP是无连接协议UDP不保证可靠的交付数据UDP面向报文传输UDP没有拥塞控制UDP的首部开销小TCP可靠传输流量控制拥塞控制三次握手...

2021-03-19 13:47:28 330

原创 流畅的python-高级篇-协程asyncio

asyncio基本概念

2021-03-17 10:18:54 512

原创 计算机网络(基础篇)-网络层

文章目录网络层IP协议虚拟互联网络数据格式IP协议转发流程路由表转发流程IP地址子网划分子网掩码网络地址转换NAT技术ICMP协议(网际控制报文协议)ICMP应用其他协议ARP协议(地址解析协议)RARP协议(逆地址解析协议)IP路由算法内部网关协议(RIP、OSPF)外部网关协议(BGP)网络层IP协议虚拟互联网络数据格式IP协议转发流程路由表转发流程IP地址子网划分子网掩码网络地址转换NAT技术ICMP协议(网际控制报文协议)ICMP应用其他协议ARP协议(地址解析协议)R

2021-03-09 16:13:42 308

原创 计算机网络(基础篇)-数据链路层

文章目录数据链路层功能封装成帧问题:数据里面恰好有这些比特流咋办?透明传输差错检测方法奇偶校验码循环冗余校验码CRC过程数据链路层功能封装成帧透明传输差错检测封装成帧帧是数据链路层数据的基本单位发送端在网络层的一段数据前后添加特定标记形成“帧”接收端根据前后特定标记识别出“帧”帧首部和尾部是特定的控制字符(特定比特流)SOH: 00000001 (首部)EOT: 00000100 (尾部)问题:数据里面恰好有这些比特流咋办?透明传输来解决透明传输“透明”在计算

2021-03-01 14:08:10 231

原创 计算机网络(基础篇)-物理层

文章目录物理层作用信道基本概念分类分用复用技术问题:发送和接收会不会冲突?冲突了怎么办?物理层作用连接不同物理信号传输比特流信道基本概念信道是王一个方向传递信息的媒体一条通信电路包含一个接收信道一个发送信道分类单工通信信道只能一个方向通信,没有反方向反馈的信道有线电视、无线电收音机等等半双工通信信道双方都可以发送和接收信息不能双方同时发送,也不能同时接收全双工通信信道双方都可以同时发送和接收信息分用复用技术多个计算机连接复用器另外多个计

2021-02-28 23:35:00 125

原创 设计模式-行为型-模板方法模式

文章目录模板方法模式概述对象适用场景例子模板方法模式概述定义操作中的算法骨架,而将一些步骤延迟到子类实现,使得一个子类不改变算法的结构即可重新定义算法的特定步骤对象抽象类:定义抽象的原子操作(钩子操作);实现一个模板方法作为算法骨架具体类:实现原子操作适用场景一次性实现算法的不变部分各个子类中的公共行为应该被提取出来并集中到一个公共父类中避免代码重复控制子类扩展例子"""设计一个windows程序,桌面开始,绘制,结束"""from abc import ABCM

2021-02-28 15:41:15 157 2

原创 设计模式-行为型-策略模式

文章目录策略模式概述对象例子优点缺点策略模式概述定义一系列算法,把它们一个个封装起来,并且使他们可以相互替换,使得算法可以独立于使用它们的客户而变化对象抽象策略具体策略上下文例子"""策略意图: 定义一系列算法,封装起来,可以相互替换"""from abc import ABCMeta, abstractmethodclass Stategy(metaclass=ABCMeta): @abstractmethod def execute(self, d

2021-02-28 14:28:08 125

原创 redis-设计与实现-链表

文章目录Redis链表作用链表与链表节点实现特征Redis链表作用列表键底层实现发布与订阅,慢查询,监视器功能实现保存多个客户端状态信息构建客户端输出缓冲区链表与链表节点实现Nodetypedef struct listNode { struct listNode *prev; // 前置节点 struct listNode *next; // 后置节点 void *value; // 值}listtypedef struct list {

2021-02-26 17:02:20 118

原创 redis-设计与实现-SDS

文章目录redis简单动态字符串(simple dynamic string, SDS)作用定义SDS与C字符串区别SDS的优点常数复杂度获取字符串长度杜绝缓冲区溢出减少修改字符串时带来的内存重新分配次数二进制安全兼容部分C字符串函数redis简单动态字符串(simple dynamic string, SDS)作用保存数据库中的字符串值用作缓冲区: AOF缓冲区, 客户端状态中的输入缓冲区定义sds.h/sdshdrstruct sdshdr { int len; // 1.

2021-02-26 16:13:45 147

原创 设计模式-行为型-观察者模式(发布订阅模式)

文章目录责任链模式概述对象适用场景例子优点责任链模式概述定义对象间的一种一对多的依赖关系,当一个对象的状态发生变化时,所有依赖他的对象都得到通知并自动更新。又称发布订阅模式对象抽象主题(Subject)具体主题(ConcreteSubject)——发布者抽象观察者(Observer)具体观察者(ConcreteObserver)——订阅者适用场景当一个抽象模型有两个方面,其中一个方面依赖于另一个方面。将这两者封装在两个独立对象中以使他们可以独立的改变和复用当对一个对象的改变需

2021-02-26 14:29:27 131

原创 设计模式-行为型-责任链模式

文章目录责任链模式概述对象例子优点责任链模式概述使得多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合度。这些对象连接成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止对象抽象处理者(Handler)具体处理者(ConcreteHandler)客户端(Client)例子class CPU: def run(self): print("CPU run...") def stop(self): print("CPU

2021-02-22 13:31:30 98

原创 设计模式-结构型-外观模式

文章目录组合模式概述对象例子优点组合模式概述为子系统中的一组接口提供一个一致的界面,外观模式定义了一个高层接口,这个接口是的这一子系统更容易使用对象外观(facade)子系统类(subsystem classes)例子class CPU: def run(self): print("CPU run...") def stop(self): print("CPU stop...")class Disk: def run(se

2021-02-19 13:29:31 115

原创 流畅的python-问题篇-取余问题

文章目录python取余问题现象解析python取余问题现象在正数与负数对10取余的时候,会发现与我们的预期不同,按照我们的理解与认知,两者计算的值应该都为212%10 # 2-12%10 # 8解析python与其他语言一样用到的取余公式为余数=除数−被除数∗商余数 = 除数-被除数*商余数=除数−被除数∗商问题出在商的计算,公式中商的计算为向下取整12//10 # 1-12//10 # -2-12//-10 # 112//-10 # -2针对自己的业务逻辑加

2021-02-18 17:35:49 235 2

转载 流畅的python-规范篇-项目规范

文章目录项目规范包和依赖静态文件配置文件与数据项目目录结构项目规范包和依赖如无特殊情况,项目的包管理器一律使用pip项目根目录下必须包含requirements.txt文件,作为项目依赖显示声明文件所有依赖都必须显示声明,禁止隐式依赖依赖声明文件中不应该包含项目中没有用到的依赖建议在开发中使用virtualenv做依赖隔离,便于使用pip freeze自动生成静态文件配置文件与数据如框架无特殊规定,配置文件应放置于项目根目录下的config文件夹中配置文件在部署、预发布、生

2021-02-18 15:13:07 259

原创 流畅的python-高级篇-偏函数

文章目录偏函数概念例子优点偏函数概念函数在执行时,要带上所有必要的参数进行调用。但是,有时参数可以在函数被调用之前提前获知。这种情况下,一个函数有一个或多个参数预先就能用上,以便函数能用更少的参数进行调用引入如下:from functools import partial例子如下是偏函数例子: 实现取余函数from functools import partialdef mod(n, m): return n % m# 1mod_by_100 = partial(mod

2021-02-18 14:38:34 1401 8

原创 设计模式-结构型-组合模式

文章目录组合模式概述对象适用场景例子优点组合模式概述将对象组合成树形结构以表示“部分和整体”的层次结构,组合模式使得用户对单个对象和组合对象的使用具有一致性对象抽象组件(Component)叶子组件(Leaf)复合组件(Composite)客户端(Client)适用场景表示对象的“部分与整体”层次结构希望用户忽略组合对象与单个对象的不同,用户统一的使用组合结构中的所有对象例子# 假设存在多个图形,并且可以通过基本图形组合成复合图形from abc import AB

2021-02-15 23:24:16 106

原创 设计模式-结构型-代理模式

文章目录代理模式概述对象适用场景例子优点代理模式概述为其他对象提供一种代理以控制对这个对象的访问对象抽象实体(Subject)实体(RealSubject)代理(Proxy)适用场景远程代理:为远程对象提供代理虚代理:根据需要创建很大的对象保护代理:控制对原始对象的访问,用于对象有不同访问对象时例子# 假设我们要进行不同颜色的形状绘制时,我们通常的 # 做法是通过继承的方式分别对不同形状与颜色组合实 # 现类的方式,例如红色矩形,红色矩形继承矩形,矩# 形继承

2021-02-10 11:25:10 190

原创 设计模式-结构型-桥模式

文章目录桥模式概述对象适用场景例子优点桥模式概述将一个事物的两个维度分离,使其可以独立的变化对象抽象(Abstraction)细化抽象(RefindAbstraction)实现者(Implementor)具体实现者(ConcreteImplementor)适用场景当事物有两个维度上的表现, 并且在每个维度都有可能扩展时例子# 假设我们要进行不同颜色的形状绘制时,我们通常的 # 做法是通过继承的方式分别对不同形状与颜色组合实 # 现类的方式,例如红色矩形,红色矩形继

2021-02-06 15:19:15 160

原创 flask-源码-run

run下图为flask 执行 app.run()时的执行过程,并且当接收到请求时__call__的执行流程,flask的请求执行过程可以参照我写的 https://blog.youkuaiyun.com/DALAOS/article/details/113566518 request 执行流程如果和大家理解有出入可以私信我,来讨论正确流程#mermaid-svg-j3rGyrupTFcjlmZu .label{font-family:'trebuchet ms', verdana, arial;font-fa

2021-02-05 14:50:33 177 2

原创 设计模式-结构型-适配器模式

文章目录适配器模式概述对象实现方式适用场景例子优点适配器模式概述将一个类的接口转换成需要的另一个接口。适配器模式使的原本由于接口不兼容而不能一起工作的类可以一起工作对象目标接口(target)待适配的类(Adaptee)适配器(Adapter)实现方式类适配器: 使用多继承对象适配器:使用组合适用场景想使用一个已存在的类,他的接口不符合要求想使用一些存在的子类,但不可能对每一个子类化以匹配他们的接口,对象适配器可以适配他的父类接口例子from abc impor

2021-02-04 14:11:31 201

原创 flask-源码-request

#mermaid-svg-3P8xRbvEpQxlnemc .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg-3P8xRbvEpQxlnemc .label text{fill:#333}#mermaid-svg-3P8xRbvEpQxlnemc .node rect,#mermaid-svg-3P8xRbvEpQ

2021-02-02 18:37:07 235

原创 mysql-(高级篇)-事务

文章目录事务概念四大特性并发问题脏读幻读不可重复读隔离等级事务概念四大特性并发问题脏读幻读不可重复读隔离等级

2021-02-01 15:22:33 182

原创 设计模式-创建型-单例模式

文章目录单例模式概述角色例子优点单例模式概述保证一个类只有一个实例,并提供一个访问他的全局访问点角色单例(Singleton)例子"""还有其他的一些实现方式以及一些更完善的代码结构,这里只是来简单的理解模式概念"""class Singleton: def __new__(cls, *args, **kwargs): if not hasattr(cls, "_instance"): cls._instance = super(Sin

2021-02-01 11:58:48 119

原创 设计模式-创建型-建造者模式

文章目录建造者模式概述角色例子优点建造者模式概述将一个复杂对象的构建与他的表示分离,使得同样的构建过程可以创建不同的表示建造者模式与抽象工厂模式相似,也用来创建复杂对象,主要区别是建造者模式着重一步步构建复杂对象,而抽象工厂模式着重于多个系列的对象角色抽象建造者(Builder)具体建造者(Concrete Builder)指挥者(Director)产品(Product)例子优点隐藏了一个产品的内部结构和装配过程将构造代码与表示代码分开可以对构建过程进行更精细控制

2021-01-29 17:56:41 146

原创 设计模式-创建型-抽象工厂模式

文章目录抽象工厂模式概述角色例子优点缺点抽象工厂模式概述定义一个工厂类接口,让工厂子类来创建一系列相关或者相互依赖的对象相对于工厂方法模式,抽象工厂模式中每个具体工厂都生产一套产品角色抽象工厂角色(Creator)具体工厂角色(Concrete Creator)抽象产品角色(Product)具体产品角色(Concrete Product)客户端(client)例子生产手机,需要手机壳、CPU、操作系统三类对象进行组装,其中每类对象都有不同种类。对每个具体工厂,分别生产生产一

2021-01-28 18:32:53 100

原创 设计模式-创建型-工厂方法模式

文章目录工厂方法模式概述角色例子优点缺点工厂方法模式概述定义一个用于创建对象的接口,让子类决定实例化哪一个产品类角色抽象工厂角色(Creator)具体工厂角色(Concrete Creator)抽象产品角色(Product)具体产品角色(Concrete Product)例子优点每个具体产品都对应一个具体工厂类, 不需要修改工厂类代码隐藏了对象创建实现细节缺点每增加一个具体产品类,就必须增加一个相应的具体工厂类...

2021-01-26 17:01:28 120

原创 设计模式-创建型-简单工厂模式

文章目录简单工厂模式概述角色例子优点缺点简单工厂模式概述不直接向客户端暴露对象创建的实现细节,而是通过一个工厂类来负责创建产品类的实例角色工厂角色 (Creator)抽象产品角色 (Product)具体产品角色 (Concrete Product)例子example:优点隐藏对象创建的实现细节客户端不需要修改代码缺点违反单一职责原则,将创建逻辑集成到一个工厂类里违反开闭原则,当添加新产品时需要修改工厂类代码...

2021-01-26 16:53:39 107

原创 mysql-(高级篇)-索引

文章目录索引概述优势与劣势索引结构索引概述优势与劣势优势提高数据索引效率,降低数据IO成本通过索引排序,降低排序成本,降低CPU消耗劣势占用硬盘空间增加维护索引时间,降低更新表的速度索引结构索引在mysql存储引擎层实现,每种存储引擎索引不一定完全相同,目前mysql提供四种索引:BTREE索引:最常见索引类型,大部分索引都支持B树索引HASH索引:只有Memory引擎支持,使用场景简单R-TREE索引(空间索引):MyISAM引擎的特殊索引,主要用于地理空

2021-01-23 18:17:45 135

原创 计算机网络(基础篇)-分层

文章目录基本原则解决的问题基本原则OSI七层模型七层模型TCP/IP四层模型四层模型基本原则解决的问题保证数据通路顺畅目的计算机状态识别目的计算机数据是否错误基本原则各层之间相互独立每一层要有足够的灵活性各层之间完全解耦OSI七层模型七层模型TCP/IP四层模型四层模型...

2021-01-19 13:44:51 183

转载 C++——string

转:http://www.cnblogs.com/xFreedom/archive/2011/05/16/2048037.html标准C++中的string类的用法总结可能很多人很可能会忽略掉标准C++中string类的使用。标准C++中提供的string类得功能也是非常强大的,一般都能满足我们开发项目时使用。现将具体用法的一部分罗列如下,只起一个抛砖引玉的作用吧,好了,废话少说,直接进入...

2019-01-26 20:08:22 186

转载 极大似然估计与最小二乘法

参考:https://www.zhihu.com/question/20447622极大似然估计与最小二乘法感觉很多地方很相似,但是又感觉哪里又不太一样,学习过程中有点混乱,在这里我找到一个知乎回答感觉挺好,但是人家禁止转载,哈哈哈哈,大家还是看参考网站吧,下边也有另一个人的,你看了那个网站回答之后再看看这个应该可以明白,总结一下:最大似然估计:现在已经拿到了很多个样本(你的数据集中所有因...

2019-01-20 09:37:42 720

原创 机器学习-regression回归

本文只是本人理解,若有偏差与错误欢迎指正回归:回归就是首先提出实验模型,但是模型的关键参数未知,通过大量数据来求出最符合测试数据的实验模型,也就是求出模型的关键参数;接下来利用李宏毅授课中的一个例子来具体看看什么是regression这是一个很有趣的例子,评估口袋妖怪进化之后的战斗能力(CP)其中包含其他的一些属性,Xcp,Xs,Xhp,Xw,Xh等第一步是确定一个Model(...

2019-01-16 21:37:06 921

原创 c++之vector

C++ vector使用方法在c++中,vector是一个十分有用的容器。它能够像容器一样存放各种类型的对象,简单地说,vector是一个能够存放任意类型的动态数组,能够增加和压缩数据。使用vector注意事项:1、如果你要表示的向量长度较长(需要为向量内部保存很多数),容易导致内存泄漏,而且效率会很低;2、Vector作为函数的参数或者返回值时,需要注意它的写法: 其中的...

2019-01-14 16:52:22 170

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除