Boost.Asio
前言 Boost.Asio, Asio的全称是asynchronous io, 可见异步io是这个组件库的主题。在任何高性能开发中、异步io永远是一个绕不开的话题,可谓高性能的基础是异步执行io事件,尽可能减少同步阻塞io操作。
前言 Boost.Asio, Asio的全称是asynchronous io, 可见异步io是这个组件库的主题。在任何高性能开发中、异步io永远是一个绕不开的话题,可谓高性能的基础是异步执行io事件,尽可能减少同步阻塞io操作。
相关技术的学习 Linux Server Structure epoll 多路复用 Linux中的多路复用方案有三种:select、poll和epoll。epoll的效率是最高的,这里详细讲解epoll。 epoll相关的系统调用有三个: epoll_create epoll_ctl epoll_wait 给两张图,你能够知道socket在内核中到底是如何组织的。 ...
epub crate example //open use epub::doc::EpubDoc; let doc = EpubDoc::new("path/to/file.epub"); assert!(doc.is_ok()); let doc = doc.unwrap(); //get doc metadata let title = doc.mdata("title"); ...
RAII惯用法 RAII:Resource Acquisition Is Initialization,资源获取即初始化。在C++中,RAII是一种资源管理的技术,通过在对象的构造函数中获取资源,然后在对象的析构函数中释放资源,来管理资源的生命周期。RAII的核心思想是:将资源的生命周期与对象的生命周期绑定在一起,通过对象的构造和析构来管理资源的生命周期。 简单来说就是资源的获取都在构造函...
RAII惯用法 RAII:Resource Acquisition Is Initialization,资源获取即初始化。在C++中,RAII是一种资源管理的技术,通过在对象的构造函数中获取资源,然后在对象的析构函数中释放资源,来管理资源的生命周期。RAII的核心思想是:将资源的生命周期与对象的生命周期绑定在一起,通过对象的构造和析构来管理资源的生命周期。 简单来说就是资源的获取都在构造函...
老师你好! 我叫蔡俊源,来自华南理工大学软件学院,就读的专业是软件工程,目前是大三在读。很荣幸这次能够参加微信后台开发岗的面试。 首先,我想简单介绍一下我的项目经验,我一共有三段项目经验,分别是在一个叫DragonOS的开源操作系统社区里进行持续性的代码贡献,这个操作系统项目所用的语言是RUST,涉及的模块主要是网络相关的。在社区工作的期间一共完成三个功能的贡献,一是完成alarm系统调...
哈希 解决哈希表问题的精髓就在如何设计键。利用键的唯一性去解决问题。 cpp数据结构 unordered_map std::unordered_map<int, std::string> myMap; myMap[1] = "One"; // 插入或更新 myMap.insert({2, "Two"}); // 插入 myMap.erase(1...
unix unix socket unix - 用于进程间通信的socket 描述 AF_UNIX socket family 用于在同一台机器中的不同进程之间的通信(IPC)。unix socket地址现支持绑定文件地址,未支持绑定abstract namespace抽象命名空间。 目前unix 域中合法的socket type有:SOCK_STREAM, 提供stream-or...
双指针 当需要多次重复的遍历数组时,使用指向头尾的双指针并同时移动它们可以大大减少重复遍历的次数。 双指针的作用就在于可以跳过无用解。通过使用两个指针(通常一个指向数组的开始,另一个指向数组的末尾)并根据一定的条件同时移动这两个指针,可以有效地在遍历数组时减少不必要的重复遍历,从而提高算法的效率。此外,双指针技术还可以帮助跳过那些不满足特定条件的无用解,进一步优化搜索或计算过程。 两数之...