- 博客(39)
- 收藏
- 关注
原创 [笔记] debug epoll
对于外设的访问可分为阻塞和非阻塞两种方式。阻塞的方案则是访问外设,如果无法取得数据(或写入数据),那么进程陷入睡眠状态。非阻塞的方式则是访问,然后判断此次访问的结果是否符合条件.即轮询的方式.如果驱动支持poll,那么当一个进程访问file时,如果可访问,那么将所需要的上下文记录下来,否则,在该file内部的等待队列上加入当前进程(下次(软)中断可能会执行)。当file可访问的时候,之前被阻塞的进程可以被唤醒然后顺序执行后续的操作即可。
2023-05-14 21:45:48
121
原创 https笔记
此时, 对于G,P,A,B双方都是可见的, 然后即可计算出相同的K.该式除了最后一项都是p的整数倍, 因此取mod必为0.加入Alice要和Bob交互, 其私钥分别是a和b,其中, 他们的K是相等的。
2023-05-11 20:43:02
83
原创 [笔记] 模拟java Class.forName
[笔记] 面向对象工厂模式反射从类型系统的角度来看,当需要在两个不同的系统中传递信息(数据)时,接收方需要知道发送方发送的数据的内部构造(数据成员,方法等),接收方在在回过头"找自己的类型"的这个过程,可以理解为反射。类似地,也可以在发送方这边完成接收方"找到类型"的这一动作,这也需要发送方能知道自身对象的内部构造。比如实际例子中的java和sql,以及java和json等。个人从“类型”的角度来表达一下我理解的反射。某个系统A是基于对象的,对象里的字段都是有明确类型的,可以是int,doub
2022-05-30 16:50:59
73
原创 [笔记] COW的一种实现
[笔记] COW的一种实现cow in linux(page翻译起来有点奇怪…)linux平台下,当我们执行fork时,子进程并不会完全复制父进程的内存页面(parent process’s pages)。而是采用了写时复制(copy on write)的策略。每当进程(父进程或者子进程)修改page时,都会为该进程(父进程或子进程)生成一个新的page副本,此后将会使用新复制的page,而不是原来共享的page。软件模拟cow这里利用了shared_ptr的use_count方法来计算引用次数,当
2022-05-29 21:14:03
144
原创 [笔记] [redis] redis命令总结
[笔记] redis笔记安装# 修改docker源"registry-mirrors": [ "https://docker.mirrors.ustc.edu.cn", "https://registry.docker-cn.com", "http://hub-mirror.c.163.com", "https://mirror.ccs.tencentyun.com" ]# 安装redisdocker pull redis:
2022-05-26 23:16:32
243
原创 [笔记]C++排序相关/比较器/严格弱排序
介绍在C++中可以使用STL库中的实现完成排序和搜索,我们只需要定义比较器就可以支持任意类型的任务。apistd::stable_sort: 元素相等时保持原有顺序,内部实现是归并排序。std::sort:元素相等时不保证原有顺序,内部实现为快排。比较器C++中定义的比较器必须满足严格的弱排序,否则会出现未定义行为。比如在具有循环的石头剪子布游戏中,STL无法对其进行正确地排序。在比较器函数comp(a, b)中,a先序于b则返回true,否则返回false。严格弱排序在严格弱排序中,只要
2022-05-03 18:19:57
2252
原创 单调栈和单调队列
单调栈和单调队列单调栈单调栈:栈中的数据是单调的(单调增或单调减),只能入栈、出栈操作。单调栈一个常见的应用是:在我们维护栈的有序性时,在进行入栈出栈操作时会做一些额外的逻辑计算。例题Leetcode 42class Solution {public: int trap(vector<int>& height) { int ans = 0, n = height.size(); stack<int> stk;
2022-04-27 14:38:21
76
原创 linux nm命令
linux nmnm - list symbols from object files.nm的一些使用例子显示每个symbol所在的文件名nm -A [obj-file]显示debugger符号nm -a [obj-file]demangling for c++nm -C [obj-file]只显示dynamic symbolnm -D [obj-file]控制输出的格式(可选bsd(default),posix,sysv)nm -f posix [obj-file]显示
2022-04-10 21:22:37
1168
原创 关于稀疏索引
稀疏索引稀疏索引在kafka中有使用。稀疏索引在内容有序的情况下使用,可以使用二分查找加快查找速度。在日志系统(只追加不修改)的情况下性能较好。
2022-01-12 23:46:40
215
原创 多路归并排序和败者树
败者树特点每棵子树的根节点都是当前子树所有节点的亚军,形式上和二叉树近似,和二叉树不一样的地方在于,根节点增加了一个父亲节点用于存储整个子树的冠军。败者树是完全二叉树,可以使用数组来实现。如在5路归并的实现时,下标2(从0开始计算)对应的父亲节点在败者树中的下标是(2+5)/2。败者树的根节点会存储整个数组中最小的数(或最大的),对于其到根节点的路径中,存储的都是兄弟树最大值,因此我们在进行比较的时候,可以直接和兄弟树的最大值进行比较,如果胜出那么直接晋级下一轮,否则兄弟节点晋级下一轮,这里巧妙的利
2022-01-12 21:44:55
655
原创 std::any源码
std::any源码分析std::any源码分析std::any构成std::any的构造函数constexpr any() noexceptany( const any& other )any(any &&__other) noexceptany(T&& value)_S_manage如何保证any_cast的正确性总结std::any源码分析std::any构成sizeof(std::any) = 16,有一个函数指针和一个_Storage成员组成.cla
2021-12-15 16:54:43
1442
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人