摘要:C++ 浮点数的存储与精度 先看个例子(如下),我们看下int、float、double在内存的二进制表示 #include<stdio.h> #include <stdlib.h> #include <string.h> #include<cstdlib> bool isLittleEndian( 阅读全文
posted @ 2021-01-09 17:23 如果的事 阅读(18) 评论(0) 推荐(0) 编辑
摘要:端口复用与惊群效应 REUSEADDR 假设同一个机器上有2个套接字,分别bind到 ip1:port1、ip2:port2,如果 port1 == port2,则第二个bind的套接字会有"Address already in use"的错误。 为了允许多个套接字绑定到同一个port上,可以打开S 阅读全文
posted @ 2021-01-07 19:45 如果的事 阅读(22) 评论(0) 推荐(0) 编辑
摘要:简单排序 冒泡排序 冒泡排序,类似于水中冒泡,较大的数沉下去,较小的数慢慢冒起来,假设从小到大,即为较大的数慢慢往后排,较小的数慢慢往前排。 直观表达,每一趟遍历,将一个最大的数移到序列末尾。 void bubbleSort(int* array, int len) { for (int n = 0 阅读全文
posted @ 2020-12-20 16:44 如果的事 阅读(19) 评论(0) 推荐(0) 编辑
摘要:C++ Singleton Lazy Singleton C++11的一个Lazy Singleton(懒汉)版本: class Singleton { public: Singleton(const Singleton&) = delete; Singleton& operator=(const 阅读全文
posted @ 2020-12-01 12:33 如果的事 阅读(33) 评论(0) 推荐(0) 编辑
摘要:clone linux 创建线程(pthread_create)和进程(fork)的过程非常类似,都是主要依赖 clone 函数,只不过传入的参数不同而已。 如此一来,内核只需要实现一个 clone函数,就既能创建进程,又能创建线程了,例如; 创建进程: clone(SIGCHLD) 创建线程: c 阅读全文
posted @ 2020-11-30 18:29 如果的事 阅读(83) 评论(0) 推荐(0) 编辑
摘要:InnoDB MVCC机制 undo log 与 redo log undo undo日志用于存放数据修改被修改前的值,假设修改 tba 表中 id=2的行数据,把Name='B' 修改为Name = 'B2' ,那么undo日志就会用来存放Name='B'的记录,如果这个修改出现异常,可以使用un 阅读全文
posted @ 2020-11-25 19:52 如果的事 阅读(33) 评论(0) 推荐(0) 编辑
摘要:协程同步 Mutex Go语言包中的sync包提供了两种锁类型:sync.Mutex和sync.RWMutex,前者是互斥锁,后者是读写锁。 使用锁的经典模式: var lck sync.Mutex func foo() { lck.Lock() defer lck.Unlock() // ... 阅读全文
posted @ 2020-10-13 17:07 如果的事 阅读(124) 评论(0) 推荐(0) 编辑
摘要:Mysql 中的事务与锁 InnoDB与MyISAM的最大不同有两点:一是支持事务(TRANSACTION);二是采用了行级锁。 事务 事务是由一组SQL语句组成的逻辑处理单元,事务具有如下4个属性,通常称为事务的ACID属性: 原子性(Actomicity),事务是一个原子操作单元,其对数据的修改 阅读全文
posted @ 2020-09-23 12:18 如果的事 阅读(114) 评论(0) 推荐(0) 编辑
摘要:QUIC协议 QUIC(Quick UDP Internet Connections)是Google设计的一套可靠UDP传输协议,旨在为HTTP提供一个安全、可靠、高效和低延时的通信基础。QUIC协议已被IETF采纳为标准,并且HTTP/3已选择使用QUIC来代替TCP作为其传输层协议。 公式: T 阅读全文
posted @ 2020-09-16 15:55 如果的事 阅读(391) 评论(0) 推荐(0) 编辑
摘要:内存屏障 首先需要明确的是,程序在运行起来,内存访问的顺序和程序员编写的顺序不一定一致,编译器和CPU都可能对代码优化导致乱序执行。 编译器乱序 编译器会做非常多的优化,指令重排序是其中一种,如下例 int a, b; void foo(void) { a = b + 1; b = 0; } 执行编 阅读全文
posted @ 2020-09-04 17:12 如果的事 阅读(182) 评论(0) 推荐(0) 编辑