C++项目
文章平均质量分 96
没什么..
一个可爱的人
展开
-
C++实现高并发内存池
高并发内存池1. 总体设计思路二级目录1. 总体设计思路高并发内存池整体框架由以下三部分组成,各部分的功能如下:线程缓存(thread cache):每个线程独有线程缓存,主要解决多线程下高并发运行场景线程之间的锁竞争问题。线程缓存模块可以为线程提供小于64k内存的分配,并且多个线程并发运行不需要加锁。线程从这里申请内存不需要加锁,每个线程独享一个ThreadCache,这也就是这个并发内存池高效的地方(这就是tcmalloc名字的本质来源,在这里具体的实现采用的是TLS(thread local原创 2021-09-18 15:38:46 · 2400 阅读 · 4 评论 -
自主开发的小型Web服务器
制作简易的Web服务器1. 技术特点2. 具体步骤3. CGI技术1. 技术特点网络编程(TCP/IP协议,socket流式套接字,http协议)多线程技术CGI技术2. 具体步骤HttpServer.hppInitServer()Start()Sock.hpp,对于网络接口的分装socket()bind()listen()accept()线程池技术进行处理所监听到的sockGetline()一个专门从套接字中一次读取一行的接口,因为Http的reque原创 2021-09-06 21:42:50 · 755 阅读 · 0 评论 -
定长内存池实现
~ObjectPool() { // } //此时代码还存一个很大的问题:我们默认这里取的是前四个字节,但是在64位的平台下,需要取的应该是这块小内存的前8个字节来保存地址 void*& Nextobj(void* obj) { return *((void**)obj); //对于返回的void*可以自动的适配平台 } //申请内存的函数接口 T* New() { T* obj = nullptr; //一上来首先应该判断freeList if (_free.原创 2021-06-30 10:24:03 · 362 阅读 · 1 评论