spdlog源码阅读(二):Logger类的实现

日志对象创建

全局默认logger

spdlog库通过logger类提供日志接口,而logger的创建有多种方式。第一种方式是全局默认logger,例如,在官方example日志使用样例中提供的默认的日志调用:

阅读更多

spdlog源码阅读(一):简介

spdlog是一个跨平台、快速和轻量的C++日志库,其完全header-only实现和基于C++11实现的特性使其可以很好的集成到任何项目中。项目地址:https://github.com/gabime/spdlog

spdlog短小精悍,代码行数在2w左右,且代码风格优秀,符合现代C++编程规范,有许多值得学习的实践,遂开坑对该源码开始阅读和理解。

阅读更多
多线程内存模型(3):锁,原子变量

多线程内存模型(3):锁,原子变量

锁是多线程编程中最常用的同步机制,用于保护共享资源,防止多个线程同时访问或修改,从而避免数据不一致或竞态条件的发生。以下代码是互斥锁的使用,利用RAII来完成自动锁的自动析构。

阅读更多
多线程内存模型(2):内存屏障
多线程内存模型(1):指令重排序

asio学习记录

asio(Asynchronous Input/Output)是一个用于C++的跨平台库,主要用于网络和底层I/O编程。它提供了一套高效的异步I/O模型,使得开发者可以更轻松地编写高性能的网络应用。

阅读更多

c++时间类型

时间类型可以说是非常常用的类型,在使用的过程中经常感觉掌握的不够全面,这里梳理一下,作为记录。

阅读更多

C++并发编程之线程管理

C++11 引入的一个标准库类std::thread,用于创建和管理线程。它提供了一种方便的方式来执行并发任务,使得多线程编程变得更加简单和安全。

阅读更多

C++跨平台开发总结

C++编写的程序是可以跨平台的,这是因为C++语言本身是一种独立于平台的编程语言。但是不同的操作系统和不同的编译器使用起来会有一些差异,这里记录了C++跨Win/Linux平台开发时需要注意的一些要点。

阅读更多

抓包工具的使用

HTTP抓包工具有老牌的Fiddler和Charles,但这些工具仅限于HTTP抓包,想要抓取传输层的tcp包则需要用到更加强大的wireshark和tcpdump。

阅读更多