摘要:
muduo编程示例 muduo库是设计来开发内网的网络程序, 它没有做任何安全方面的加强措施, 如果在公网上可能会受到攻击; muduo库把主动关闭连接这件事分成两步来做: 如果主动关闭连接, 会先关本地写端, 等对方关闭之后, 再关闭本地读端; muduo Buffer类的设计与使用 muduo输 阅读全文
摘要:
muduo网络库简介 高级语言(Java, Python等)的Sockects库并没有对Sockects API提供更高层的封装, 直接用它编写程序很容易掉到陷阱中; 网络库的价值还在于能方便地处理并发链接; 网络核心库 muduo是基于Reactor模式的网络库, 其核心是个事件循环EventLo 阅读全文
摘要:
MQTT协议的入门 "入门教程" ; 发布/订阅(Pub/Sub)模式,方便消息在传感器之间传递; 这意味着发布者和订阅者之间并不需要直接建立联系; 消息类型 MQTT拥有14种不同的消息类型: CONNECT:客户端连接到MQTT代理 CONNACK:连接确认 PUBLISH:新发布消息 PUBA 阅读全文
摘要:
高效的多线程日志 日志(logging)有两个意思: 诊断日志(diagnostic log), 常用日志库提供日志功能; 交易日志(transaction log), 用于记录状态变更, 通过回放日志可以逐步恢复每一次修改后的状态; 日志通常用于故障诊断和追踪(trace), 也可用于性能分析; 阅读全文
摘要:
C++多线程系统编程精要 学习多线程编程面临的最大思维方式的转变有两点: 当前线程可能被切换出去, 或者说被抢占(preempt)了; 多线程程序中事件的发生顺序不再有全局统一的先后关系; 当线程被切换出去回来继续执行下一条语句(指令)的时候, 全局数据(包括当前进程在操作系统内核中的状态)可能已经 阅读全文
摘要:
多线程服务器的适用场合与常用编程模型 进程间通信与线程同步; 以最简单规范的方式开发功能正确、线程安全的多线程程序; 多线程服务器是指运行在linux操作系统上的独占式网络应用程序; 不考虑分布式存储, 只考虑分布式计算; 进程与线程 进程(process)是操作系统里最重要的两个概念之一(另一个是 阅读全文
摘要:
线程同步的精要 并发有两种基本的模型: 一种是message passing(消息传递); 另一种是shared memory(共享内存); 在分布式系统中(有多台物理机需要通信), 运行在多台机器上的多个进程只有一种实用模型:message passing(消息传递), 因为多个物理机基本上不能共 阅读全文
摘要:
商汤面试 "C++11中智能指针的原理, 使用和实现" 商汤一面面经(软件开发) 我是面的C/C++, 大部分时间是问项目, 中间问了几个技术问题, 但有一个没有回答上,直接被挂掉; 怎么让浮点数向上取整; int(a+0.5); 怎么保存大的浮点数 用字符串保存; C++怎么实现多态 用virtu 阅读全文
摘要:
8大排序算法的总结 "常见算法思想" ; 简介 插入排序 冒泡排序 直接插入排序 折半插入排序 归并排序 快速排序 希尔排序 堆排序 直接选择排序 稳定性比较 快速排序、希尔排序、堆排序、直接选择排序不是稳定的排序算法; 基数排序、冒泡排序、直接插入排序、折半插入排序、归并排序是稳定的排序算法; 稳 阅读全文
摘要:
顺丰的电话面试 程序的地址空间(栈, 段, 堆, 静态数据段, bbs段, 代码段(.code)), const变量保存在那个段中; static无论是全局变量还是局部变量都存储在全局/静态区域,在编译期就为其分配内存,在程序结束时释放; const全局变量存储在只读数据段,编译期最初将其保存在符号 阅读全文