- 博客(20)
- 资源 (5)
- 收藏
- 关注
原创 浅谈innodb的锁与事物
序言本篇博客,想简单地阐述对innodb的锁与事物的理解,不喜勿喷。曾经向某位同学解释,所有数据库的通用原理时,他问我:“这他妈和file system”有何区别?下面列了一些,但不局限于此。...
2020-08-03 23:44:56 303
原创 kamailio二次开发简述版完整教程(附上小例子的源码)
关于kamailio module的二次开发,仅以实际项目中的一个小例子为主,讲解一个module从编写到调用的整个周期。背景:在视频会议中,我们需要在信令层记住与会者相关信息,通常为fromtag,totag,callid,并且使得这些信息与会议房间相关联,比如通过会议房间号,你需要获得所有与会者的全部信息,想到的数据结构自然是htable+list。当然这不是重点,重点是如何在kamaili...
2018-12-22 20:43:09 3925
转载 _attribute_ GNU函数声明关键字
主要用于通知编译器一些信息:attribute(format());packed(取消字节对齐)struct My{ int a; char c; }attribute((packed));指定字节对齐数:struct My{ int a ; char c; }_attribute(aligned(8));该属性可以使编译器检查函数声明和函数...
2018-09-05 10:08:20 742
原创 levelDB源码及原理解析系列;
时隔半年,在次阅读之前整理的稀疏的笔记,以及浏览代码的痕迹,心中感慨万千。经过半年的学习与进步这一次完整的解读不知道能达到怎样的高度。接下来的关于levelDB的每一点我都会尽心尽力的完成,在此立下flag....
2018-09-05 09:14:23 1107
原创 git来龙去脉 与 使用总结
git 分布式版本控制系统为了更好理解git首先理解几个概念: 图1.1 如上图所示 1 . 工作区: 这里是你实际编写代码的地方,你可以简单理解为工作目录,你所编写的代码放在这。 2 . 版本库: 工作区里会有一个隐藏目录: .git,这里面存放了很多东西,是版本控制的核心,版本库中又有两个比较重要的...
2018-08-13 18:12:23 161
原创 linux thread Implementation
linux下三种实现线程模型的方式:M to one : 线程在用户空间,内核感知不到,这样所有关于线程的一切操作可以在用户空间下做,包括创建,消除,上下文切换,以及加解锁,效率很高。 缺点也显而易见:当当前某个线程因为特定事件,比如IO等待时,就会出现所有线程全部阻塞住,因为,内核能看到的只有进程,而无法对进程进行切换。one to one:M to N:...
2018-08-03 09:05:47 155
原创 2018阿里笔试机器人寻路问题
1 在自动化仓库中有若干障碍物,机器人需要从起点出发绕过这些障碍物到终点搬取货柜,现试求机器人从起点运动到终点用时最短的路径。 已知机器人只能沿着东西方向或南北方向移动,移动的速度为1m/s,机器人每转向90度需要花费1s。 输入: 第一行:起点位置坐标及机器人朝向,如: 1 0 EAST代表机器人初始坐标为x=1,y=0,机器人面朝东方 第二行:终点位置坐标及机器人朝向,如: 0...
2018-06-28 21:58:20 1908
原创 关于静态库的连接问题
内功心法:如果想理解大型程序的构建必须完全理解linker阶段到底做了哪些工作;一下抛砖引玉,一些个人的理解。 提前知识:linxu下目标文件格式(ELF): 1.可重定位目标文件; //你可以暂时理解为通常说的.o 2.可执行目标文件; //你可以单纯的理解为.exe 3.共享库;首先对于基本的程序编译步骤大致可以分为如下: ...
2018-06-04 14:56:31 1128
原创 华为2018笔试 5.9 号 最后一题 关于 图的最短路径问题
读懂题目第一张图片: 1.知道各个路段的长度范围;(用于后边的条件检测,即判断当前输入是否产生异常)第二张图片: 1.知道各个路段的时速,用来记录后面的过路费,其实只有当100时候有用,其余都是废话,(但是是否需要考虑有可能有时速超过100的情况并没有从测试用例得知) 第三张图片: 告知约束函数,即最终代价与速度其实关系不大...
2018-05-10 20:41:28 1550
原创 c++ 之 cin (数字字符串的一些疑问与解决办法)
C++之cin第一次被cin 迷惑住,就做了些测试得出以下算不上严谨但绝对正确的结论; 并且这个现象应该与c++ IO的具体实现由密切关系;在数字与字符串的切换间,回车只能影响字符串的读取而影响不了数字; #include<iostream> #include<string> using namespace std; int main(){ ...
2018-04-19 22:13:12 1629
原创 BitMap的使用
BitMap也就是我们所说的位图算法,最常用的就是用来压缩数据。 前奏 : 举个例子:你如果使用int类型的数据来标识数字,则每一个数字需要的4个字节才可以标识,而如果你使用bit的话你只需要一位这样数据的压缩量就是 1/32. 比如你通常表示的数字1在计算机中的存储为(当然也可以有小端存储)00000000 | 00000000 | 00000000 | 000...
2018-04-08 15:47:00 1274
原创 KPM算法(附视频网站与代码)
KPM算法 最主要的内容就是求解:最长公共前后缀数组: 可以参考如下视频讲解: https://www.youtube.com/watch?v=dgPabAsTFa8&t=623s 很清晰; 仅仅贴出看完视频之后所编写的代码,部分地方有微妙的改动。 其中有关于最长公共前后缀数组的优化:思想就是剔除不必要的移动操作, 比如match字串如果为aaaab,如果比较了第5位知道不相等,可
2017-12-17 20:46:20 844
原创 c++实现简单的读写锁
#include<unistd.h>#include <pthread.h>#include<iostream>class RWLock{ // 读写锁 public: RWLock(); ~RWLock(); void read_lock(); void read_unlock(); void write_loc...
2017-12-08 20:45:41 2099
原创 谷歌的变种murmurHash算法
谷歌变种murmurHash的编写与测试#include<iostream>#include<stdint.h>#include<cstring>#include<time.h>#include<iterator>#include<vector>#include<algorithm>using namespace std;bool CheckLittleEndin();uint32
2017-10-17 10:50:31 702
原创 二叉树非递归遍历
二叉树生成与非递归遍历先贴上代码#include<iostream>#include<stdlib.h>#include<stack>using namespace std;struct Bnode{ char data; struct Bnode *left; struct Bnode *right;}Node;enum Type{ FRONT, MIDDL
2017-10-13 10:54:15 280
原创 读写优先问题
关于读写问题的读优先代码如下:Mutex WR =1;Mutex CountMutex =1;int count=0;//首先编写write的大概框架;void write(){ //由于读写以及写写之间需要互斥,所以使用WR隔离; //保证了写与写以及读与写之间的互斥; P(WR); write operation; V(WR); }// read的大概
2017-10-09 09:34:21 1783
原创 c/c++指针参数如何传递内存
例子1如下: void getMemory(char *p,int num){ p = new char [num]; } void main(){ char *str = NULL; getMemory( str,100); ->这一步在调用时候只是 *p
2017-09-19 20:41:18 648
原创 Linux下 erlang/otp 20.0安装
奉献给可爱的小白!首先自行百度安装autoconf 与 git 获取安装包 :git clone https://github.com/erlang/otp.gitcd otp./otp_build autoconf./configuremakemake install在安装过程通常出现如下问题1. No java complier foound[root@localh
2017-09-03 20:33:38 3959
原创 ELGG的开发学习
突发奇想,写这个博客,是因为在网站关于ELGG的框架介绍的东西太少了,而且有的也都是不痛不痒的东西,很少对学习有帮助,所以写点东西。首先,如果你以前学习过MVC的框架,可以进行映射学习,但却又不完全一样,这里的M也就是与数据库打交道的MOUDLE你可以对应的去看ELGGENTITY,ELGGmetedata以及ELGGanntion这三个文件在engine目录下的CLASS文件里面会有。而C,也就是
2017-03-16 19:42:39 1085 1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人