KalosAner Blog

「山穷水复疑无路,柳暗花明又一村。」

C++ 标准库 thread 类的用法

一、引言 std::thread 是 C++11 引入的线程管理类,用于创建和管理多线程程序,可以跨平台使用。使用该类需要在头文件引入 #include <thread> 并且在 Linux 下编译时需要链接 pthread 库。 常用的函数的函数原型: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 ...

C++ 学习资料整理

以下资料于 2025.03.31 开始整理。 看过的文章 分布式系统 分布式存储系统的一致性是什么?:分布式存储的一致性,主要是读写数据的一致性,某些情况下可以容忍读旧数据。noSQL 和 SQL 在分布式系统有很大区别。 共识算法(整理):主要用来解决分布式系统中各个阶段的决策统一问题,尤其是拜占庭问题,拜占庭错误算是分布式系统中一个最极端的问题,某个算法解决了这个问题,就可以说这...

C++ 内联函数

一、引言 内联(inline)函数的主要作用就是在编译阶段把内联函数的代码直接复制到调用该代码的地方。这样做可以省去调用函数的开销,提高效率。但是当调用该函数的地方太多时,会导致汇编代码过长,而且会增长编译时间。此外,内联函数不可以是递归函数,并且通常建议 inline 函数不超过 10 行代码。 inline 必须在函数定义时才生效,仅在函数声明时添加无效。 二、C++ 17...

五笔字型字根表


程序 CPU 占用率较高如何排查

一、定位 定位到对应的进程,然后因为线程是 CPU 调度的最小单位,找到进程中的线程。 二、分析 CPU 过高可能的原因: 1、代码逻辑问题:死循环或者时间复杂度过高 2、多线程并发:自旋锁滥用(忙等待持续占用 CPU) 3、频繁内存分配释放,缓存未命中 4、频繁的系统调用 三、解决 对于自旋锁可以优化成互斥锁 内存分配频繁可以使用内存池 缓存未命中通常需要设置线程的亲...

dup 和 dup2

一、作用 函数原型 1 2 3 4 #include <unistd.h> int dup(int oldfd); int dup2(int oldfd, int newfd); dup 函数:给 oldfd 指向的“文件”再分配一个新的文件描述符。返回的新描述符是当前进程可用的最小数值,并且源 oldfd 不会被关闭。 dup2 函数:将 oldfd 重定向到 ne...

extern 的作用

一、声明变量或函数 extern 用来声明某变量或函数在其它文件中(extern 是声明外部变量或函数,之前总是以为向外暴露自身的变量或函数)。 extern int val 可以用来声明变量 val 来自其他源文件(是源文件不是头文件,头文件直接 include 就可以了),这样链接器在链接阶段会去其它文件寻找定义,但是变量 val 在其他文件中不能是 static 声明的。 例如:...

如何去除 AI 味

一、什么是 AI 味 首先,AI 在训练的时候会保留数据中较为通用的语言模式和规律,不会出现个性化表达,导致语言风格单一。 其次,人写文章的时候思维很跳跃,但是 AI 文章的结构很机械,逻辑性很强。 二、怎样去除 AI 味 去除 AI 味就是 1、让 AI 语言多元化 2、让 AI 不要太有逻辑 方法一:使用翻译工具 当 AI 写好一篇文章后,批量去掉“首先”、“其次”、“然...

Linux 上安装 Anaconda

一、下载 首先在官网仓库找自己需要的版本,https://repo.anaconda.com/archive/。以 Anaconda3-2024.06-1-Linux-x86_64.sh 为例,在终端输入 wget https://repo.anaconda.com/archive/Anaconda3-2024.06-1-Linux-x86_64.sh。这一步是下载批处理命令脚本,安装成功...

SSH 密钥的生成与使用

一、引言 SSH(Secure Shell)是一种用于安全远程登录和其他安全网络服务的协议。在使用 SSH 时,密钥对(公钥和私钥)可以替代传统的密码认证方式,提供更高的安全性和便利性。 当客户端使用 SSH 连接服务端时需要身份验证,身份验证的方法之一就是使用密钥对。在连接时,私钥保留在客户端上,公钥发送给服务端。相比密码,私钥难以被猜测或暴力破解,提高了连接的安全性。 二、密钥生成...