自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(30)
  • 收藏
  • 关注

原创 20210531

muduo就这么看完了…开始构思自己的web服务器,后续会慢慢记录~

2021-05-31 22:02:54 120

原创 对epoll的一点新认识

epoll

2021-05-29 17:12:17 112

原创 condition类的设计——muduo源码分析

muduo封装的条件变量,直接使用了Mutex.h依然是RAII的设计,注意在使用wait()的时候要while循环。pthread_cond_signal在多处理器上可能同时唤醒多个线程,当你只能让一个线程处理某个任务时,其它被唤醒的线程就需要继续wait,,而且规范要求pthread_cond_signal至少唤醒一个pthread_cond_wait上的线程,其实有些实现为了简单在单处理器上也会唤醒多个线程。pthread_cond_broadcast唤醒全部线程,但我们通常只需要一部分线程去

2021-05-27 23:03:58 142

原创 mutex的设计——muduo源码分析

mutex

2021-05-26 19:57:51 133

原创 记录几个工具

记录几个工具

2021-05-25 19:55:06 101

原创 异步唤醒机制——muduo源码分析

muduo异步唤醒机制

2021-05-24 21:17:43 526 2

原创 建立连接的过程——muduo源码分析

建立连接

2021-05-23 22:34:24 157

原创 EventLoopThreadPool类解析——muduo源码分析

创建了EventLoopThread线程池,然后把回调函数注册进去了。采用roundrobin的方式往里添加新的连接,如果线程池大小为0,则在baseloop回调。EventLoopThreadPool.h#ifndef MUDUO_NET_EVENTLOOPTHREADPOOL_H#define MUDUO_NET_EVENTLOOPTHREADPOOL_H#include "muduo/base/noncopyable.h"#include "muduo/base/Types.h"#in

2021-05-22 11:33:03 98

原创 EventLoopThread类解析——muduo源码分析

我认为看源码的一个比较好的顺序:从.h里面看成员变量,看看这个类到底持有那些成员变量,再从.cc里面去看成员函数的作用,从构造和析构中去看懂哪些对象的生命周期归该类控制。但是muduo的EventLoopThread实现为自动销毁的。一般loop函数退出整个程序就退出了,所以muduo库的线程池就是启动时分配,并没有释放。所以线程结束一般来说就是整个程序结束。EventLoopThread在threadFunc中创建了栈上EventLoop loop,threadFunc在构造时与Thread绑定。E

2021-05-22 10:46:50 235 1

原创 EventLoop类解析——muduo源码分析

EventLoop会在构造函数中创建一个poller对象,创建一个TimerQueue和WakeUpChannel,WakeUpChannel仅用于存放eventfd,用于异步唤醒,调用DoPendingFunctors()。通过t_loopInThisThread保证one loop per thread。事件循环运行的核心步骤:1、清空activechannel2、调用poll返回activechannel3、处理activechannel中的事件4、doPendingFunctors()

2021-05-21 21:34:16 250

原创 Channel类解析——muduo源码分析

Channel是一个内部类,仅供整个网络内部使用,不暴露对外的接口。该类为的主要作用是管理文件描述符,但是它不拥有文件描述符,文件描述符的析构工作不由它管理。一个Channel只管理一个文件描述符。作用:管理一个文件描述符,其可读可写事件以及在pollfd中的位置index()。在处理事件之前会用weak_ptr检测对象是否存在#ifndef MUDUO_NET_CHANNEL_H#define MUDUO_NET_CHANNEL_H#include "muduo/base/noncopyable

2021-05-20 21:35:23 225

原创 TcpServer类解析——muduo源码分析

该Evenloop运行在主线程,仅用于监听客户端的建立连接请求,不负责监听TcpConnection。该EventloopThread不从EventloopThreadPool中取。TcpServer中有一个线程池,大小固定不支持动态扩容。#ifndef MUDUO_NET_TCPSERVER_H#define MUDUO_NET_TCPSERVER_H#include "muduo/base/Atomic.h"#include "muduo/base/Types.h"#include "mud

2021-05-20 20:36:06 218

原创 Acceptor类解析——muduo源码分析

注释都放在代码里了,Acceptor.h#ifndef MUDUO_NET_ACCEPTOR_H#define MUDUO_NET_ACCEPTOR_H#include <functional>#include "muduo/net/Channel.h"#include "muduo/net/Socket.h"namespace muduo{namespace net{class EventLoop; //前向声明,头文件不需要重复包含class InetAdd

2021-05-19 20:18:46 139

原创 20210518有感

有好久一段日子没有记录自己的学习。临近秋招给自己定个小目标:六月中旬之前,啃完muduo网络库net源码,每日打卡。

2021-05-18 23:34:25 65

原创 腾讯PCG一面凉经

凉经

2021-03-24 15:56:11 304 2

原创 腾讯微信后台开发二面凉经

凉经

2021-03-23 10:55:44 280

原创 腾讯微信实习后台开发一面

微信一面

2021-03-19 19:50:30 194

原创 蚂蚁金服实习生面试

蚂蚁金服面经

2021-03-04 16:43:13 1072 1

原创 网易有道日常实习C++开发一面二面面经2021/02/04

HR上午打电话约时间,当天下午就面试,问的问题很少,但是问的比较深。

2021-02-04 19:22:48 812 2

原创 字节跳动后台开发日常实习一面、二面面经 2021/01/20

字节跳动后台开发日常实习一面二面面经

2021-01-20 20:05:12 2669 7

原创 Linux系统调用

之前一直不太懂系统调用,面试也很容易被问到,总结一下方便自己学习。

2021-01-05 11:09:32 202

原创 多路I/O复用:select、poll、epoll(三)

多路IO复用模型之epoll

2020-12-14 15:25:23 203

原创 多路I/O复用:select、poll、epoll(二)

多路IO复用模型之poll

2020-12-12 11:38:42 1110

原创 多路I/O复用:select、poll、epoll(一)

多路IO复用模型之select

2020-12-11 17:28:50 1127

原创 智能指针、容器、迭代器的一些常见问题总结

最近在coding的时候在使用迭代器时遇到了一些的问题,都是因为自己理解不当造成的。总结几点分享给大家避免重复踩坑~

2020-11-26 16:48:38 636

原创 RTTI—运行时类型识别

在存在虚函数表的继承关系时,每个虚函数表前面都设置有一个type_info指针,用于支持RTTI,RTTI是为多态而生成的信息,包括对象继承关系,对象本身的描述等,只有具有虚函数的对象才会生成。

2020-11-18 16:43:36 229

原创 腾讯TEG日常实习二面算法题,&、=字符串匹配

腾讯二面算法题,字符串匹配,正则表达式怎么都搜不到原题,自己写了写分享给大家~

2020-11-07 15:40:18 486

原创 图解虚函数的内存模型和继承方式,虚函数表指针、虚函数表、多继承、多重继承、菱形继承、虚继承

虚函数、虚函数表指针、虚函数表、多级继承、多重继承、菱形继承

2020-10-29 22:49:02 1936 10

原创 声网日常实习C++笔试题:求数组的最大公约数

题目描述:Let’s consider all in the range from 1 to n(inclusive).Among all pairs of distinct integers in this range, find the maximum possible greatest common divisor of integers in pair. Formally, find the maximum value of gcd(a ,b), where 1 ≤\leq≤ a ≤\leq≤

2020-10-23 15:58:43 938

原创 腾讯TEG日常实习,c++后台开发一面

腾讯C++后台开发实习的一面面经,分别根据C++、计算机网络、操作系统、算法和项目进行提问,需要对这些基础知识有比较好的理解。

2020-10-22 22:07:25 1182 11

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除