摘要: 线程池+同步io和异步io(浅谈) 来自于知乎大佬的一个评论 我们的系统代码从同步方式+线程池改成异步化之后压测发现性能提高了一倍,不再有大量的空闲线程,但是CPU的消耗太大,几乎打满,后来改成协程化之后减少了线程数,提高了性能(相比异步化的代码,性能又提高了一倍以上),降低了资源消耗(主要是CPU 阅读全文
posted @ 2019-12-17 22:59 南哥的天下 阅读(1486) 评论(0) 推荐(0) 编辑
摘要: c++11 实现半同步半异步线程池 感受:随着深入学习,现代c++给我带来越来越多的惊喜… c++真的变强大了。 半同步半异步线程池:其实很好理解,分为三层 同步层:通过IO复用或者其他多线程多进程等不断的将待处理事件添加到队列中,这个过程是同步进行的。 队列层:所有待处理事件都会放到这里。上一层事 阅读全文
posted @ 2019-12-17 22:56 南哥的天下 阅读(551) 评论(0) 推荐(0) 编辑
摘要: c++中std::set自定义去重和排序函数 c++中的std::set,是基于红黑树的平衡二叉树的数据结构实现的一种容器,因为其中所包含的元素的值是唯一的,因此主要用于去重和排序。这篇文章的目的在于探讨和分享如何正确使用std::set实现去重和排序功能。 1.方法一:使用std::set内置的l 阅读全文
posted @ 2019-12-17 22:46 南哥的天下 阅读(1955) 评论(0) 推荐(0) 编辑
摘要: 指针大小为什么与类型无关 指针的大小与硬件有关。 内存中有各种各样的数据,整型、浮点型、字符型等等。这些数据在内存中占据不同大小的储存空间,用sizeof运算符(注:sizeof是种运算符而不是函数,它在编译时发挥作用)进行运算时结果是不同的。然而不同类型的指针在相同系统环境下进行这种运算时结果却是 阅读全文
posted @ 2019-12-17 22:45 南哥的天下 阅读(453) 评论(0) 推荐(0) 编辑
摘要: 消息队列」看过来! 一、什么是消息队列? 当我试图用一则通俗的比喻来说明这个概念的时候,我想到一个有意思的比喻:如果把队列抽象成一个集合体,那么消息队列也就是一堆消息的集合。按照这个思路我想到了「杂志」。这不就是一堆消息的集合吗,关心这些消息的人都能通过「购买」来获得这些消息,而我可以通过不同种类的 阅读全文
posted @ 2019-12-17 22:32 南哥的天下 阅读(315) 评论(0) 推荐(0) 编辑
摘要: stl中map的四种插入方法总结方法一:pair例:map<int, string> mp;mp.insert(pair<int,string>(1,"aaaaa")); 方法二:make_pair例:map<int, string> mp;mp.insert(make_pair<int,strin 阅读全文
posted @ 2019-12-17 22:05 南哥的天下 阅读(8601) 评论(0) 推荐(0) 编辑
摘要: C++迭代器的使用和操作总结 目录 一.定义和初始化 二.常用操作 三.迭代器const_iterator 四.使迭代器失效的操作 正文 迭代器是一种检查容器内元素并遍历元素的数据类型。C++更趋向于使用迭代器而不是下标操作,因为标准库为每一种标准容器(如vector)定义了一种迭代器类型,而只用少 阅读全文
posted @ 2019-12-17 21:54 南哥的天下 阅读(1312) 评论(0) 推荐(0) 编辑
摘要: 在C++中,_beginthreadex 创建线程是很麻烦的。要求入口函数必须是类的静态函数。 通常,可以采用thunk,或者模板来实现。 因C++ 11中引入了 std::async ,可以很好的解决这个问题了。 值得注意的是,在循环中 std::async 创建线程,我试了好多次总是失败,后来看 阅读全文
posted @ 2019-12-17 17:33 南哥的天下 阅读(5085) 评论(0) 推荐(0) 编辑
只有注册用户登录后才能阅读该文。 阅读全文
posted @ 2019-12-17 00:03 南哥的天下 阅读(17) 评论(0) 推荐(0) 编辑