- 博客(7)
- 资源 (1)
- 收藏
- 关注
原创 go 简单令牌桶实现
import ( "sync" "time")type stopWatch struct { time int64}func (s *stopWatch) nowMicros(nowMicros int64) int64 { return nowMicros - s.time}func (s *stopWatch) getMicro() int64 { return time.Now().UnixMicro() - s.time}type rateLi..
2022-03-29 13:46:13
298
原创 c++ 模板类型推断
1.若T为引用,但不是万能引用:template<class T>void fun(T&);a)T不会被推导为引用类型,形参会被推断为引用类型(&类型)b)如果实参带const,实参的const属性会成为模板T的组成部分,且形参也会带上const属性(const &)2.若T为引用,且带有const属性template<class T>void fun(const T&);a) T不会被推断为const类型(即使实参.
2022-01-17 00:29:21
1933
原创 TCP time_wait
1.TCP特点:面向连接,字节流,可靠传输(TCP发送端执行写操作的次数和接受端执行读操作的次数没有数量关系,即应用程序对对数据的发送和接受是没有任何边界的)2.TCP头部1.16位端口号:告知报文来自那个端口,并且将交付给哪个端口。2.32位序号:一次TCP通信,一个传输方向上的字节流的每个字节的编号。假设A主机和B主机进行TCP通信,A发送给B的第一个报文中,序号被初始化为某个随机的值ISN,后续的TCP的序号将被系统设置为ISN加上该报文段的第一个值在总报文段的偏移。3.32位
2022-01-07 21:21:27
1091
原创 IP数据报头部
1.4位版本号:对于ipv4,其值是42.4位头部长度:表示ip的头部有多少4字节。4位最大表示15,因此ip数据报头部最长是60字节3.16位总长度:以字节为单位。最大的位2^16-1,但是由于MUT的限制,超过MUT的都被分片传输4.16位标示:唯一的标示每个数据报。分片的数据报该位相同5.13位片偏移:相对原始ip数据报开始位置的偏移。实际的偏移由该位偏移3位得到6.3位标志:第三位为MF7.8位生存时间:经过路由的最大数8.8位协议:用来区分上层协议。ICMP:1 T..
2022-01-06 22:55:34
2281
原创 最大基环内向树
一、内向基环树性质:1.是一个图,而不是一个树2.所有节点的出度均为13.环外的节点指向环内的节点二、如何找出内向基环树:拓扑排序:记录所有节点的入度,拓扑排序后,入度为1的节点为环中的节点。代码中g[i]代表i->g[i]的一条有向边 queue<int>q; for(int i=0;i<n;++i){ if(degree[i]==0){ q.push(i); }
2022-01-06 16:41:14
353
原创 C++MutexLock,MutexLockGuard实现(Linux muduo网络库 陈硕)
class EventLoop:boost::noncopyable{public:EventLoop();~EventLoop();//事件循环函数void loop();void assertInLoopThread(){if(!isInLoopThread()) absortNotInLoopThread();}}bool isInLoppThread() const { return threadid_==CurrentThread::tid();}.
2021-12-06 00:29:48
283
原创 线程安全的C++单例模式实现(Linux moduo 网络库)
单例模式意图:一个类只能有一个实例,提供一个全局访问点适用场景:一个类频繁的创建与销毁关键:构造函数定义为private
2021-11-30 12:25:02
3406
江南大学数据可视化作业
2022-06-29
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人