自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

li775085737的博客

一些基础知识

  • 博客(20)
  • 资源 (5)
  • 收藏
  • 关注

原创 浅谈innodb的锁与事物

序言本篇博客,想简单地阐述对innodb的锁与事物的理解,不喜勿喷。曾经向某位同学解释,所有数据库的通用原理时,他问我:“这他妈和file system”有何区别?下面列了一些,但不局限于此。...

2020-08-03 23:44:56 275

原创 kamailio二次开发简述版完整教程(附上小例子的源码)

关于kamailio module的二次开发,仅以实际项目中的一个小例子为主,讲解一个module从编写到调用的整个周期。背景:在视频会议中,我们需要在信令层记住与会者相关信息,通常为fromtag,totag,callid,并且使得这些信息与会议房间相关联,比如通过会议房间号,你需要获得所有与会者的全部信息,想到的数据结构自然是htable+list。当然这不是重点,重点是如何在kamaili...

2018-12-22 20:43:09 3623

转载 _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 676

原创 levelDB源码及原理解析系列;

时隔半年,在次阅读之前整理的稀疏的笔记,以及浏览代码的痕迹,心中感慨万千。经过半年的学习与进步这一次完整的解读不知道能达到怎样的高度。接下来的关于levelDB的每一点我都会尽心尽力的完成,在此立下flag....

2018-09-05 09:14:23 1008

原创 git来龙去脉 与 使用总结

git 分布式版本控制系统为了更好理解git首先理解几个概念: 图1.1 如上图所示 1 . 工作区: 这里是你实际编写代码的地方,你可以简单理解为工作目录,你所编写的代码放在这。 2 . 版本库: 工作区里会有一个隐藏目录: .git,这里面存放了很多东西,是版本控制的核心,版本库中又有两个比较重要的...

2018-08-13 18:12:23 133

原创 linux thread Implementation

linux下三种实现线程模型的方式:M to one : 线程在用户空间,内核感知不到,这样所有关于线程的一切操作可以在用户空间下做,包括创建,消除,上下文切换,以及加解锁,效率很高。 缺点也显而易见:当当前某个线程因为特定事件,比如IO等待时,就会出现所有线程全部阻塞住,因为,内核能看到的只有进程,而无法对进程进行切换。one to one:M to N:...

2018-08-03 09:05:47 136

原创 2018阿里笔试机器人寻路问题

1 在自动化仓库中有若干障碍物,机器人需要从起点出发绕过这些障碍物到终点搬取货柜,现试求机器人从起点运动到终点用时最短的路径。 已知机器人只能沿着东西方向或南北方向移动,移动的速度为1m/s,机器人每转向90度需要花费1s。 输入: 第一行:起点位置坐标及机器人朝向,如: 1 0 EAST代表机器人初始坐标为x=1,y=0,机器人面朝东方 第二行:终点位置坐标及机器人朝向,如: 0...

2018-06-28 21:58:20 1842

原创 关于静态库的连接问题

内功心法:如果想理解大型程序的构建必须完全理解linker阶段到底做了哪些工作;一下抛砖引玉,一些个人的理解。 提前知识:linxu下目标文件格式(ELF): 1.可重定位目标文件; //你可以暂时理解为通常说的.o 2.可执行目标文件; //你可以单纯的理解为.exe 3.共享库;首先对于基本的程序编译步骤大致可以分为如下: ...

2018-06-04 14:56:31 1072

原创 华为2018笔试 5.9 号 最后一题 关于 图的最短路径问题

读懂题目第一张图片: 1.知道各个路段的长度范围;(用于后边的条件检测,即判断当前输入是否产生异常)第二张图片: 1.知道各个路段的时速,用来记录后面的过路费,其实只有当100时候有用,其余都是废话,(但是是否需要考虑有可能有时速超过100的情况并没有从测试用例得知) 第三张图片: 告知约束函数,即最终代价与速度其实关系不大...

2018-05-10 20:41:28 1505

原创 TCP专题

2018-05-09 11:32:42 112

原创 c++ 之 cin (数字字符串的一些疑问与解决办法)

C++之cin第一次被cin 迷惑住,就做了些测试得出以下算不上严谨但绝对正确的结论; 并且这个现象应该与c++ IO的具体实现由密切关系;在数字与字符串的切换间,回车只能影响字符串的读取而影响不了数字; #include<iostream> #include<string> using namespace std; int main(){ ...

2018-04-19 22:13:12 1572

原创 BitMap的使用

     BitMap也就是我们所说的位图算法,最常用的就是用来压缩数据。  前奏 :         举个例子:你如果使用int类型的数据来标识数字,则每一个数字需要的4个字节才可以标识,而如果你使用bit的话你只需要一位这样数据的压缩量就是 1/32.    比如你通常表示的数字1在计算机中的存储为(当然也可以有小端存储)00000000 | 00000000 | 00000000 | 000...

2018-04-08 15:47:00 1202

原创 KPM算法(附视频网站与代码)

KPM算法 最主要的内容就是求解:最长公共前后缀数组: 可以参考如下视频讲解: https://www.youtube.com/watch?v=dgPabAsTFa8&t=623s 很清晰; 仅仅贴出看完视频之后所编写的代码,部分地方有微妙的改动。 其中有关于最长公共前后缀数组的优化:思想就是剔除不必要的移动操作, 比如match字串如果为aaaab,如果比较了第5位知道不相等,可

2017-12-17 20:46:20 796

原创 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 2040

原创 谷歌的变种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 664

原创 二叉树非递归遍历

二叉树生成与非递归遍历先贴上代码#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 251

原创 读写优先问题

关于读写问题的读优先代码如下: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 1726

原创 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 625

原创 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 3895

原创 ELGG的开发学习

突发奇想,写这个博客,是因为在网站关于ELGG的框架介绍的东西太少了,而且有的也都是不痛不痒的东西,很少对学习有帮助,所以写点东西。首先,如果你以前学习过MVC的框架,可以进行映射学习,但却又不完全一样,这里的M也就是与数据库打交道的MOUDLE你可以对应的去看ELGGENTITY,ELGGmetedata以及ELGGanntion这三个文件在engine目录下的CLASS文件里面会有。而C,也就是

2017-03-16 19:42:39 994 1

布隆过滤器的实现,以及测试用例,简单易懂并做了一些注释

布隆过滤器的简单实现,从谷歌的levelDB摘取过来,做了源码的注释很好理解

2018-04-08

html5,js所编写的一个精美的登陆以及注册界面

web前端,模仿阿里云注册界面,编写,登陆界面以及注册界面都有相应的注释很容易照着修改!

2017-10-09

html编写2048

html5编写2048游戏很适合新手阅读,并且做了相应的注释

2017-10-09

html贪吃蛇源码

html,js缩所写的贪吃蛇,源码简介清晰你可以,根据所写的注释读

2017-10-05

百度开源rpc框架源码

百度开源rpc框架以及谷歌开源leveldb框架附带解析,其中

2017-10-05

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除