![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c++
可乐小浣熊
菜鸟小白
展开
-
c++多线程模式下的socket编程(线程池实现)
socket 编程可以说是一个基本的技术掌握,而多个客户端向服务端发送请求又是一个非常常见的场景,因此多线程模式下的socket编程则显得尤为常见与重要。 本文主要利用线程池的技术,来实现多线程的模式,线程池的优点就不多述了,相信大家都能理解,就是减少了线程创建于销毁的时间,提高多线程的性能。 首先,先写个线程池: 下面分别是头文件 和cpp文件 #ifnd...原创 2018-07-20 18:33:33 · 14602 阅读 · 2 评论 -
LRU缓存算法c++实现
在如今的项目开发中,缓存是一种必不可少的存储方式,目前在各种后台开发中,比较常见的一种缓存算法就是LRU了,LRU名为最近最少使用算法。它会将最近不常用的缓存数据淘汰掉,是一种Cache替换算法。 本文通过c++简单的实现这种算法,代码不长,但能很好的体现这种思想 思路: map 存储数据 ,实现查找效率O(1),双向链表实现算法逻辑 算法逻辑: 1....原创 2018-07-26 14:09:58 · 9955 阅读 · 6 评论 -
c++最大堆的实现
在看一些开源组件的源码时,会发现很多的底层地方都会使用到最大堆(最小堆)的数据结构,如 在libevent中维护超时事件就用到了最小堆的结构,可见,这种数据结构的重要性。 最大堆:根结点的键值是所有堆结点键值中最大者。 最小堆:根结点的键值是所有堆结点键值中最小者。 堆,最重要的一个过程就是重建的过程,当有新的数据加进来或者移除时,都会对堆进行一次重建...原创 2018-08-29 18:44:32 · 1112 阅读 · 0 评论 -
epoll+线程池实现高并发
epoll模型是linux实现高并发的一种方法,基于事件驱动模型,相比于select/poll 模型具有更高的效率,本人对epoll模型做了一个简易的封装,更多的功能还在完善中,在这里仅做学习参考用。 在epoll编程中,有三个非常重要的函数: 1. int epoll_create(int size) :创建epoll 句柄, 入参是表示监听的数...原创 2018-09-27 10:40:29 · 5656 阅读 · 0 评论