2024年7月15日
摘要: #include <stdio.h> #include <sys/mman.h> #include <fcntl.h> #include <unistd.h> int main() { int fd = open("/dev/zero", O_RDWR); if (fd == -1) { perro 阅读全文
posted @ 2024-07-15 14:02 轻于飞 阅读(16) 评论(0) 推荐(0)
摘要: 锁在多线程编程中确实能带来上下文切换和内核态开销。以下是详细的解释: 上下文切换 上下文切换是指操作系统在多个线程或进程之间切换执行的过程。这个过程涉及保存当前执行线程的状态(上下文)并恢复即将执行的线程的状态。上下文切换会带来一定的性能开销,主要表现在以下几个方面: CPU寄存器保存和恢复:保存当 阅读全文
posted @ 2024-07-15 13:58 轻于飞 阅读(173) 评论(0) 推荐(0)
摘要: 内存屏障,也称为内存栅栏,是一种用于控制CPU或编译器对内存操作顺序的技术。它确保在多线程或多处理器环境中,内存操作按预期顺序执行,以避免数据不一致或竞争条件。 内存屏障的类型 写内存屏障(Write Memory Barrier, WMB):确保在屏障之前的所有写操作在屏障之后的写操作之前完成。 阅读全文
posted @ 2024-07-15 13:57 轻于飞 阅读(880) 评论(0) 推荐(0)
摘要: 1.变长参数是:“...” 比如:void printNumbers(int num, ...); 2.参数传值 <cstdarg> 头文件在C++中提供了处理可变参数函数的功能。它定义了一些宏和类型,允许你在函数中处理可变数量的参数。这个头文件实际上是C标准库中的 <stdarg.h> 的C++版 阅读全文
posted @ 2024-07-15 13:53 轻于飞 阅读(75) 评论(0) 推荐(0)