![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
读书笔记
文章平均质量分 96
Owl丶
这个作者很懒,什么都没留下…
展开
-
《高性能MySQL》读书笔记(1~6章)
第1章 MySQL架构与历史MySQL最重要、最与众不同的特性是它的存储引擎架构,这种架构的设计将查询处理(Query Processing)及其他系统任务(Server Task)和数据的存储/提取相分离。这种处理和存储分离的设计可以在使用时根据性能、特性,以及其他需求来选择数据存储的方式。1.1 MySQL逻辑架构顶层服务层并非MySQL独有,大多数基于网络对外提供服务的中间件都有这一层,主要是连接处理、授权认证、安全等。第二层是MySQL的服务器层,大多数核心服务功能都在这一层,包括解析、原创 2021-05-08 15:21:36 · 1017 阅读 · 1 评论 -
《Linux多线程服务端编程:使用muduoC++网络库》学习笔记
boost库安装:apt-cache search boost搜到所有的boost库然后:sudo apt-get install libboost-all-dev安装相应的库第一章 线程安全的对象生命期管理1.1 当析构函数遇到多线程C++多线程对象的销毁可能会碰到竞态条件,解决办法是使用shared_ptr。1.1.1 线程安全的定义1.1.2 MutexLock与MutexLockGuard#include<bits/stdc++.h>#include<b原创 2021-02-02 21:36:34 · 2504 阅读 · 1 评论 -
Python学习笔记
函数参数1、定义默认参数要牢记一点:默认参数必须指向不变对象!2、可变参数在Python函数中,还可以定义可变参数。顾名思义,可变参数就是传入的参数个数是可变的def calc(*numbers): sum = 0 for n in numbers: sum = sum + n * n return sum定义可变参数和定义一个list或tuple参数相比,仅仅在参数前面加了一个*号。在函数内部,参数numbers接收到的是一个tuple,因此,函数代码原创 2020-12-08 16:20:02 · 1416 阅读 · 0 评论 -
《Effective Modern C++》笔记
绪论一种有启发性地判断一个表达式是左值的方法是检查是否可以取得该表达式的地址。如果可以取地址,它基本上就是一个左值。如果不行,通常来说是一个右值。这种方法之所以说复用启发性,是因为他让你记得,表达式的型别与它是左值还是右值没有关系。形参只能是左值,但是作为其初始化依据的实参即有可能是右值也有可能是左值。...原创 2021-01-27 20:49:05 · 825 阅读 · 1 评论 -
《TCP/IP详解 卷1》12-17章TCP笔记
第12章 TCP:传输控制协议(初步)12.1 引言通信媒介可能会丢失或改变被传递的消息。——信息理论(information theory)& 编码理论(coding theory)如何使信息在通信信道中避免出错:使用差错校正码(某些比特的冗余)。尝试重新发送(自动重复请求,Automatic Repeat Request,ARQ)。12.1.1 ARQ和重传考虑多跳通信信道,有这些差错种类:分组丢失比特差错分组重新排序分组复制最直接处理分组丢失、比特差错(无原创 2020-12-15 23:10:35 · 1460 阅读 · 0 评论 -
《Linux内核设计与实现》读书笔记
第一章 Linux内核简介1.3操作系统和内核简介内核有时候被称作是管理者或者是操作系统核心。通常一个内核由负责响应中断的中断服务程序,负责管理多个进程从而分享处理器时间的调度程序,负责管理进程地址空间的内存管理程序和网络、进程间通信等系统服务程序共同组成。对于提供保护机制的现代系统来说,内核独立于普通应用程序,它一般处于系统态,拥有受保护的内存空间和访问硬件设备的所有权限。这种系统态和被保护起来的内存空间,统称为内核空间。相对的,应用程序在用户空间执行。它们只能看到允许它们使用的部分系统资源,并且只使原创 2020-12-01 20:24:42 · 2597 阅读 · 1 评论 -
《UNIX网络编程》 卷1 笔记
第五章5.6正常启动显示详细的网络状况:netstat -anp-a或–all 显示所有连线中的Socket。-n或–numeric 直接使用IP地址,而不通过域名服务器。-p或–programs 显示正在使用Socket的程序识别码和程序名称.5.8 POSIX信号处理1.如果一个信号在被阻塞期间产生了一次或多次,那么该信号被解阻塞之后通常只递交一次,也就是说Unix信号默认是不排队的。2.signal函数不同系统不同实现,最好用sigaction(符合POSIX标准)自定义自己的si原创 2020-10-02 20:55:13 · 559 阅读 · 0 评论 -
《深度探索C++对象模型》笔记
第一章1.多态:不同对象去完成同一行为时,可以展现出不同的形态。在运行时,可以通过指向基类的指针或引用,来调用实现派生类中的方法。作用:在面向对象的程序设计中,使用多态能够增强程序的可扩充性,即类型需要修改或增加功能时,只需改动或增加较少的代码,提高开发效率。2.C++对象模型所有的非静态数据成员存储在对象本身中。所有的静态数据成员、成员函数(包括静态与非静态)都置于对象之外。另外,用一张虚函数表(virtual table)存储所有指向虚函数的指针,并在表头附加上一个该类的type_info对象,原创 2020-07-28 19:46:13 · 442 阅读 · 0 评论 -
《Effective C++》 笔记
导读被声明为explicit的构造函数通常比其non-explici兄弟更受欢迎,因为它们禁止编译器执行非预期(往往也不被期望)的类型转换。**除非我有一个好理由允许构造函数被用于隐式类型转换,否则我会把它声明为explicit。**我鼓励你遵循相同的政策。copy构造和copy赋值的区别:如果一个新对象被定义(例如以上语句中的w3),一定会有个构造函数被调用,不可能调用赋值操作。如果没有新对象被定义(例如前述的"w1=w2"语句),就不会有构造函数被调用,那么当然就是赋值操作被调用。函数Pass原创 2020-10-11 21:33:02 · 774 阅读 · 0 评论 -
《设计模式的艺术》读书笔记
面向对象设计原则表1 7种常用的面向对象设计原则设计原则名称定 义使用频率单一职责原则(Single Responsibility Principle, SRP)一个类只负责一个功能领域中的相应职责★★★★☆开闭原则(Open-Closed Principle, OCP)软件实体应对扩展开放,而对修改关闭★★★★★里氏代换原则(Liskov Substitution Principle, LSP)所有引用基类对象的地方能够透明地使用其子类的对象★★★★★原创 2020-11-09 19:29:35 · 904 阅读 · 0 评论