- 博客(9)
- 收藏
- 关注
原创 Linux虚拟内存布局
在Linux操作系统中,进程的虚拟地址空间通常被划分为几个不同的区域,每个区域用于特定的目的。最后,推荐一个Linux c/c++内容学习平台。
2024-10-21 22:52:02
681
原创 线程池详解及纯c代码实现
定义尾指针以实现常数时间的任务插入,尾指针使用二级指针,它指向指向队列最后一个任务的指针的地址,即tail = 队尾元素的next,以这种方式,可以方便地更新队列的尾部指针;自旋锁用于队列内部的任务保护,由于不像互斥锁会引起上下文的切换,实现轻量级的任务保护;以上代码实现了基本的线程池功能,更进一步可以实现任务执行优先级,任务分类执行,异常告警线程分类等。,具体实现中,在头文件中定义用户需要知道的信息,在源文件中定义实现细节。.c文件中定义任务的封装和任务队列的封装。.c文件中定义线程池结构体。
2024-10-17 21:34:35
1391
原创 Windows下异步I/O机制IOCP介绍
输入输出完成端口(Input/Output Completion Port,IOCP), 是Windows下支持多个同时发生的异步I/O操作的应用程序编程接口,用于解决网络编程中的连接建立、连接断开、数据发送和数据接收四个问题。下面从几个问题来解释iocp。
2024-10-15 22:12:32
992
原创 Linux高性能异步io,io_uring实现服务器
Linux系统中io_uring是2019年首次出现的一个新的异步IO框架,用于实现高效的异步IO操作。
2024-10-11 21:20:40
1136
原创 Cmake项目构建教程
project定义项目的名称和语言,MyProject是项目的名称,它会被赋值给cmake的预定义变量 ${PROJECT_NAME},并且可以在整个 CMakeLists.txt 文件中使用这个变量来引用项目名称。在这个例子中,表示项目使用C和C++语言。除了包含example目录的源文件外,需要再将子目录demo加到变量中,使用include_directories指定编译器在编译源文件时搜索头文件的路径(仅影响项目路径,不影响生成的构建目标),最后使用add_library生成一个当前目录的库。
2024-10-09 13:53:32
1309
原创 Linux c/c++协程设计原理
在C++20中引入了协程新特性,能够实现异步操作并且以可读,可维护的方式编写代码,并且提供更高的性能,因为减少了线程切换和上下文切换的开销。以此能够在不更改原有代码的情况下,将使用的函数替换为用户态的实现。下面通过9个问题来理解协程。
2024-10-07 18:52:27
1185
原创 Linux c/c++ posix API功能解读
POSIX(Portable Operating System Interface)是一组可移植的操作系统接口,用于在不同的UNIX类操作系统之间实现更好的兼容性。POSIX API涵盖了文件和目录操作、进程控制、线程管理、信号处理、内存管理、网络通信等多方面的功能。
2024-09-24 23:44:20
946
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人