2016年9月29日

GO interface显示类型转换方法

摘要: 一共两种,直接看代码 import ( "fmt") func main() { //var i interface{} = "TT" var i interface{} = 77 value, ok := i.(int) if ok { fmt.Printf("类型匹配int:%d\n", val 阅读全文

posted @ 2016-09-29 14:33 Joker_88 阅读(24738) 评论(0) 推荐(0)

TCP和UDP报文分片的区别

摘要: 搞了三年网络,今天才知道这个细节,汗,总结下: MTU大家都知道,是链路层中的网络对数据帧的一个限制,依然以以太网为例,MTU为1500个字节。一个IP数据报在以太网中 传输,如果它的长度大于该MTU值,就要进行分片传输,使得每片数据报的长度小于MTU。分片传输的IP数据报不一定按序到达,但IP首部 阅读全文

posted @ 2016-09-29 13:56 Joker_88 阅读(11807) 评论(0) 推荐(5)

2016年9月27日

Raft详解-启动后运行期间代码

摘要: Raft启动后运行期间主要执行两个函数;1、状态监测和转化 func (rf *Raft) Loop() { // Set out as a follower TimeOutConst := 0 for { TimeOutConst = ElectionTimeoutConst() if rf.st 阅读全文

posted @ 2016-09-27 18:09 Joker_88 阅读(1650) 评论(0) 推荐(0)

Raft协议详解-leader发送心跳代码go

摘要: 如果已经把最新的log更新了,那就多等一会,反之,很快就广播AppendEntries(也就是心跳消息) func (rf *Raft) LeaderState() { time.Sleep(10 * time.Millisecond) if rf.LastApplied == rf.CommitI 阅读全文

posted @ 2016-09-27 17:53 Joker_88 阅读(1050) 评论(0) 推荐(0)

Raft详解分析

摘要: 1、投票部分 一个candidate向所有其他的server发送RequesetVote RPC(具体格式见论文),每次从RPC的reply中累加voteCount,如果超过一半,这个candidate变成leader,把这个消息放到channel中,反之选举失败,变成follower对应go 代码 阅读全文

posted @ 2016-09-27 17:36 Joker_88 阅读(506) 评论(0) 推荐(1)

2016年9月25日

GO对象和指针初始化

摘要: 转自http://www.cnblogs.com/tianyajuanke/p/5234205.html 阅读全文

posted @ 2016-09-25 11:10 Joker_88 阅读(1563) 评论(0) 推荐(0)

2016年9月16日

转陈皓老师的无锁队列的实现

摘要: http://coolshell.cn/articles/8239.html 阅读全文

posted @ 2016-09-16 15:50 Joker_88 阅读(246) 评论(0) 推荐(0)

2016年7月20日

慎用#define

摘要: #define INT_MAX 2147483647 INT_MAX+1 就会变成负数 long long r; r > INT_MAX+1 就会出错,应该写成 r > 2147483648 阅读全文

posted @ 2016-07-20 12:49 Joker_88 阅读(150) 评论(0) 推荐(0)

2016年6月27日

C语言指针强制转化的应用

摘要: 指针类型强制转化在kernel设计中非常常见,这里记录两个非常有意思的用法: 1、对地址进行运算。任何虚拟地址都表示成void *va = (void *) 100, *(va + 1) ==101,表示虚拟地址va的下一个虚拟地址,但在查找PageTable的时候,首选把它转化成数字(uint32 阅读全文

posted @ 2016-06-27 14:48 Joker_88 阅读(1023) 评论(0) 推荐(0)

2016年6月16日

C语言语法tips(不断更新)

摘要: 语法虽然琐碎,犯了低级错误代价可就大了,列出一些容易混淆概念,避免以后出错 sizeof和strlen的区别在于:1.sizeof是运算符,语言支持的,strlen可以求malloc出来的字符串的长度。例如char *pkt ="abceef"; sizeof(pkt) = 4; 因为pkt是指针大 阅读全文

posted @ 2016-06-16 17:20 Joker_88 阅读(267) 评论(0) 推荐(0)

导航