- 博客(8)
- 收藏
- 关注
原创 Posix API
是一套由 IEEE 制定的操作系统接口标准,旨在为不同 UNIX/Linux 系统提供统一的编程接口,确保代码的跨平台可移植性。它是 UNIX/Linux 系统编程的基石,涵盖了文件操作、进程管理、线程、信号、网络通信等核心功能。
2025-04-14 23:45:59
321
原创 epoll 百万并发
1、epollepoll是Linux内核提供的一种高效的事件通知机制,用于I/O多路复用。它允许一个线程监视多个文件描述符(如套接字),并在这些文件描述符上有事件发生时通知应用程序。epoll相比于传统的select和poll机制,提供了更高的性能和可扩展性,特别适用于高并发和高吞吐量的网络服务器。1.1、epoll 的基本概念文件描述符(File Descriptor, fd):在 Linux 系统中,每个打开的文件或套接字都有一个唯一的文件描述符。epoll 通过文件描述符来监听特定的事件。
2024-12-01 23:43:32
956
原创 C++线程
1、 C++11多线程thread重点join和detach的使用场景thread构造函数参数绑定c函数绑定类函数线程封装基础类互斥锁mutexcondition notify、waitlock_guard/unique_lockfunction和bind异步future/packaged_task/promise线程池的实现,线程池涉及的技术点1.1、线程thread1.1.1、语法默认构造函,构造一个线程对象,在这个线程中不执行任何处理动作threa
2024-11-14 15:05:05
1105
原创 C++线程
提供了比更灵活的锁管理功能,适用于需要更复杂锁管理的情况,如延迟锁定、手动解锁、锁的所有权转移以及与条件变量配合使用等场景。则更适合简单的、作用域限定的锁管理需求。使用unique_lock需要付出更多的时间、性能成本原子变量是通过模板类定义的。它可以包装基本数据类型(如intbool等)。// 定义一个原子整数变量// 定义一个原子布尔变量原子变量是 C++ 中处理并发编程的重要工具,通过确保操作的原子性和避免数据竞争,可以显著提高多线程程序的可靠性和性能。
2024-11-13 01:09:39
694
原创 引用,匿名函数、移动、完美转发
从性能上讲,左右值引用没有区别,传参使用左右值引用都可以避免拷贝。右值引用可以直接指向右值,也可以通过std::move指向左值;而左值引用只能指向左值(const左值引用也能指向右值)。作为函数形参时,右值引用更灵活。虽然const左值引用也可以做到左右值都接受,但它无法修改,有一定局限性。作用用于在函数模板中实现完美转发(Perfect Forwarding)。用途:确保参数在转发过程中保持其原始类型(左值或右值),避免不必要的复制或调用错误的构造函数。
2024-11-10 16:27:19
611
原创 C++智能指针
unique_ptr是一个独占型的智能指针,不能将其复制给另一个unique_ptr。unique_ptr可以指向一个数组。unique_ptr需要确定删除器的类型。智能指针之间不能混用。weak_ptr要和shared_ptr搭配使用,不能单独使用weak_ptr。weak_ptr的lock()使用是要先调用lock()再调用expired()。调用lock()之后use_count+1。据是同一份,而shared_ptr不是同一个对象。
2024-11-09 17:57:14
2286
原创 设计模式基础
模板模式通过将算法的骨架与具体实现分离,使得算法的结构稳定,而具体步骤可根据需求灵活变化。这种模式符合开闭原则和单一职责原则,适用于那些算法结构固定但某些步骤需要根据不同情况进行调整的场景。观察者模式通过定义一个一对多的依赖关系,使得被观察者状态变化时,所有依赖于它的观察者都能自动收到通知并进行相应的更新。这种模式符合开闭原则和依赖倒置原则,适用于那些需要多个对象同时响应某个对象状态变化的场景。通过观察者模式,可以有效地降低对象之间的耦合度,提高代码的灵活性和可维护性。
2024-11-06 00:16:57
738
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人