随笔分类 - c++
摘要:作者:@apocelipes本文为作者原创,转载请注明出处:https://www.cnblogs.com/apocelipes/p/10899484.html 通常,当我们开发Linux程序时有两种方案: 虽然我自己是在Linux环境上直接进行开发的,但也有许多的人是在Windows环境上从事开发
阅读全文
摘要:前几天在开发某些数据结构到文件的 Dump 和 Load 功能的时候, 遇到的一个 bug 。 【问题复现】 问题主要出在 Load 过程中,从文件读取数据的时候, 直接使用 fread 的去操作 string 的内部指针地址 (char*)s.c_str() 。 简化后的示例代码如下( testd
阅读全文
摘要:今天想到哈希函数,好像解决冲突的只了解了一种链地址法而且也很模糊,就查了些资料复习一下 1、哈希Hash 就是把任意长度的输入,通过哈希算法,变换成固定长度的输出(通常是整型),该输出就是哈希值。 这种转换是一种压缩映射,也就是说,散列值的空间通常远小于输入的空间。不同的输入可能会散列成相同的输出,
阅读全文
摘要:gRPC服务发现&负载均衡 https://segmentfault.com/a/1190000008672912?utm_source=tag-newest GRPC编程指南 gRPC 介绍 gRPC 是谷歌开源的高性能 RPC 框架。RPC 也即远程方法调用,对于 RPC client 来说,它
阅读全文
摘要:https://github.com/huihut/interview
阅读全文
摘要:在处理字符串的程序当中,经常会分析字符串,从一大长串的字符串截取我们需要的数据,这如果通过自己手写函数来分析,虽然可以,但当你知道sscanf的功能,那就自己写函数分析就显得多此一举。 这些函数的使用都很简单,总结一下,等下次使用一目了然。俗话说:好记性不如烂笔头,记录下来就是效率。
阅读全文
摘要:在生产者-消费者模式中,我们常常会使用到队列,这个队列在多个线程共享访问时存在互斥和竞争操作, 意味着每次访问都要加锁。如何更好的如何减少锁竞争次数呢 ?今天要介绍的双缓冲队列就是个不错的选择。 双缓冲队列就是冲着同步/互斥的开销来的。我们知道,在多个线程并发访问同一个资源的时候,需要特别注意线程的
阅读全文
摘要:看个例子 如图所示,程序会崩溃,分析了是因为两个线程都在编辑变量t,子线程调用t时主线程不一定赋值已经完成,就会造成空指针的操作,加锁可避免这种问题 附一个别人遇到的问题
阅读全文
摘要:多线程操作全局变量,必须考虑同步问题,否则可能出现数据不一致, 甚至触发coredump. 前段时间, 遇到一个多线程操作了全局的vector的问题, 程序崩了。场景是这样的:某全局配置参数保存在一个vector中,需要定时更新(更新线程), 另外的工作线程去读取配置。 这种场景是非常普遍的。 在该
阅读全文
摘要:enable_shared_from_this是一个模板类,定义于头文件<memory>,其原型为: template< class T > class enable_shared_from_this; std::enable_shared_from_this 能让一个对象(假设其名为 t ,且已被
阅读全文
摘要:学习libevent有助于提升程序设计功力,除了网络程序设计方面外,libevent的代码里有很多有用的设计技巧和基础数据结构,比如信息隐藏、函数指针、c语言的多态支持、链表和堆等等,都有助于提升自身的程序功力。 程序设计不止要了解框架,很多细节之处恰恰也是事关整个系统成败的关键。只对libeven
阅读全文
摘要:2019/4/2 补充一下 这里如果填充为0,则不会崩溃,填充为非0时,再次调用赋值就会崩溃 推测非0拷贝破坏了string内部的数据结构,不要对任何类使用memset https://blog.csdn.net/sardden/article/details/42736947
阅读全文
摘要:shared_ptr为智能指针,今天一次在使用shared_ptr时,错误的将其初始化方式写为shared_ptr<T> test = shared_ptr<T>(),随后导致崩溃 正确做法是shared_ptr<T> test = make_shared<T>() 或shared_ptr<T> t
阅读全文
摘要:实际上,默认的情况下,如果一个网络应用程序的一个套接字 绑定了一个端口( 占用了 8000 ),这时候,别的套接字就无法使用这个端口( 8000 ), 验证例子如下: #include <stdio.h>#include <stdlib.h>#include <string.h>#include <
阅读全文
摘要:1 class ErrorCodeConfig{ 2 public: 3 ErrorCodeConfig(){} 4 ErrorCodeConfig(const ErrorCodeConfig&)=delete; 5 ErrorCodeConfig &operator=(const ErrorCodeConfig&) = delete; 6 ...
阅读全文
摘要:1.选择(select)模型:选择模型:通过一个fd_set集合管理套接字,在满足套接字需求后,通知套接字。让套接字进行工作。 选择模型的核心是FD_SET集合和select函数。通过该函数,我们可以们判断套接字上是否存在数据,或者能否向一个套接字写入数据。 用途:如果我们想接受多个SOCKET的数
阅读全文
摘要:1.equal_range equal_range是C++ STL中的一种二分查找的算法,试图在已排序的[first,last)中寻找value,它返回一对迭代器i和j,其中i是在不破坏次序的前提下,value可插入的第一个位置(亦即lower_bound),j则是在不破坏次序的前提下,value可
阅读全文
摘要:重点看https://blog.csdn.net/move_now/article/category/7254783 http://www.doc88.com/p-6951371052737.html https://www.cnblogs.com/nearmeng/p/4043548.html h
阅读全文

浙公网安备 33010602011771号