- 博客(156)
- 资源 (5)
- 收藏
- 关注
原创 C++ 11 Lambda表达式
值捕获和参数传递中的值传递类似,被捕获的变量的值在Lambda表达式创建时通过值拷贝的方式传入,因此随后对该变量的修改不会影响影响Lambda表达式中的值。上面这个例子先声明了一个整型变量a,然后再创建Lambda表达式,该表达式“捕获”了a变量,这样在Lambda表达式函数体中就可以获得该变量的值。上面的例子,要么是值捕获,要么是引用捕获,Lambda表达式还支持混合的方式捕获外部变量,这种方式主要是以上几种捕获方式的组合使用。
2023-06-21 10:57:09
665
原创 tcp丢包的排查
服务端在高并发的情况, 主动关闭连接, 会出现大量的socket处于timewait状态,timewait数目超过tcp_max_tw_buckets(默认是65536)值后,新来的连接直接进入close状态。半连接队列中存放等待完成3次握手的连接,这些连接的状态为Syn_RECV ,该队列长度为max(64,/proc/sys/net/ipv4/tcp_max_syn_backlog)1 - RFC3704定义的严格模式:对每个收到的数据包,查询反向路由,如果数据包入口和反向路由出口不一致,则不通过。
2023-05-22 21:27:25
4473
1
原创 centos-yum错误: Cannot retrieve repository metadata (repomd.xml) for repository怎么解决
for repository:xxxx ,修改xxx的enabled=1改为enabled=0
2022-07-20 16:11:56
998
原创 Go sync.Mutex
Go语言提供了包和机制来解决并发机制中不同之间的同步和通信Go语言使用语句开启新的,由于非常轻量除了对其分配栈空间外,所占的空间也是微乎其微的。但当多个同时处理时会遇到比如同时抢占一个资源,某个会等待等一个处理完毕某才能继续执行的问题。对于这种情况,官方并不希望依靠共享内存的方式来实现进程的协同操作,而是希望通过信道的方式来处理。但在某些特殊情况下,依然需要使用到锁,为此包提供了锁。当在并发情况下,多个同时修改某一个变量时,就会出现资源抢占,因此会导致数据不一致的问题。上例中一依次从寄存器中读取
2022-06-26 19:47:39
2205
1
原创 RTMP协议分析-chunk格式
对于RTMP协议来说,他的 传输单元是 chunk。一个 RTMP 包就是一个 chunk。所以 chunk 的格式,也就是 RTMP 报文的格式。chunk 的格式如下:编辑切换为居中可以看到 Chunk Header 由 3 部分组成。Basic HeaderMessage HeaderExtended Timestamp先来 讲解 Basic Header 的格式,Basic Header 由 fmt + chunk stream id 组成,fmt (也叫 chunk
2022-05-17 14:13:44
317
原创 C11新特性
C++11新特性之右值引用(&&)、移动语义(move)、完美转换(forward) - Fate0729 - 博客园 (cnblogs.com)
2022-03-21 22:54:01
339
原创 select、poll、epoll之间的区别
select、poll、epoll之间的区别(搜狗面试) - aspirant - 博客园 (cnblogs.com)
2022-03-18 12:49:21
112
原创 C++内存泄露几种常见原因
在cpp编程中,产生内存泄漏的主要原因是利用malloc或者new等分配内存的方式申请内存后,由于主观或者客观原因没有进行释放,导致申请的内存区域没有及时得到释放导致的。下面对几种常见/特殊的情况进行简单记录。1. 析构函数中未匹配地释放内存2. 基类的析构函数没有设为虚函数,由于基类的析构函数不是虚函数,在实现多态时,通过delete删除指向派生类的基类指针时,派生类的析构函数被覆盖无法调用,而是调用的基类的析构函数,导致派生类对象无法被释放,导致内存泄漏。3. 关于指针数组释放对
2022-03-13 12:40:31
6354
1
C++多线程编程视频教程(C++11多线程并发)【122212】多线程API详解(一).rar
2020-03-13
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人