- 博客(9)
- 收藏
- 关注

原创 手撕c++ shared_ptr(字节跳动手写算法)
#include <iostream>#include <memory>using namespace std;namespace smart_pointer {template <typename T>struct defaultDeleter { void operator()(const T *ptr) { if(ptr) { delete ptr; ptr = nullptr; } }};template <
2020-07-01 20:05:56
2702
4

原创 10万并发的高性能c++ webserver设计与实现
简介 该项目使用c++11,参考muduo实现的静态web服务器。muduo网络库使用线程池+电平触发式epoll+NIO的Reactor模式实现。该项目汲取muduo的优点,并简化设计。采用线程池+边沿触发式epoll+NIO的Reactor模式实现,各个工作线程采用RR方式(Round Robin)来公平分配请求,同时引入了应用层心跳,来处理超时连接。该webserver支持长...
2019-12-22 17:52:30
6120
1

原创 Linux操作系统pipe()-execlp()-dup2()分析
Linux操作系统pipe()-execlp()-dup2()分析目标:使用Linux system call API实现sort | uniq | wc -l < data.txt。涉及的知识点:使用C调用shell命令 使用管道,在各命令间通信 标准输入输出重定向execlp()执行shell command头文件:<unistd.h>函数原型...
2019-03-03 19:39:47
1421
1
原创 手撕c++ unique_ptr(字节跳动手写算法)
#include <iostream>#include <memory>using namespace std;namespace smart_pointer{template <typename T>struct defaultDeleter { void operator()(const T *ptr) { if(ptr) { delete ptr; ptr = nullptr; } }};templ
2020-07-01 20:59:23
1537
2
原创 C++底层设计--对象(成员布局、多态实现)
C语言中,数据和处理数据的操作是分开声明的,语言本身没有支持“数据和函数”的关联。C++中支持封装,在软件工程层面上看,比在C语言中使用全局数据好。C++支持封装性质,在不使用虚函数或抽象类时,不会带来额外的开销(空间、效率)。C++对象模型中,non-static成员数据放在每个对象中,而static成员数据放在所有对象外。且static和non-static成员函...
2019-07-22 21:21:22
364
1
原创 Linux操作系统select非阻塞操作socket分析
socket在很多应用常见下,单进程单线程,调用socket(),connect(),read(),write()等一套,对单个socket服务。但在多socket场景下,这样的方法行不通了。server会在accept()时阻塞,等待client连入,那么到底是监听端口8080先accept(),还是监听端口8086先accept()。这就需要引入非阻塞式轮询各个socket的状态,当他...
2019-04-21 09:58:39
1142
原创 C++对象模型分析-继承原理解析
讨论主题:分析C++继承关系的实现原理。继承关系下的构造和析构构造由内而外。先调用基类Base的构造函数,但后执行自己的构造函数。析构由外而内。先析构自己,再调用Base的析构函数。值得注意的,base class的析构函数需要申明为virtual,否则在析构时,派生类仅析构基类,而析构自身,可能导致内存泄漏。class Base{ public:...
2019-02-25 13:06:16
239
原创 C++面向对象程序设计提高篇
讨论主题:泛型编程和面向对象编程。主要说明C++中模板的应用。类型转型转换函数,operator typename()转换构造函数,one-argument constructorexplicit关键字类的两种形式pointer-like classes,智能指针function-like classes, 仿函数模板类模板函数模板成员模板模板特化模板偏特化...
2019-02-24 16:54:34
233
1
原创 C++面向对象程序设计基础篇
Object Based 面对单一class设计&amp;amp;gt; 经典分类Class without pointer member(s)complexClass with pointer member(s)string&amp;amp;gt; complex例子Header(头文件)中防卫式声明#ifndef __COMPLEX__#define __COMPLEX__...#endif...
2019-02-22 18:20:36
371
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人