【AI】半衰期算法在后端的应用2025-03-10web880 words 2 mins read在后端开发中,半衰期算法常用于动态调整数据权重的场景,其核心是通过时间衰减机制平衡实时性与历史价值。以下是其典型应用及实现逻辑: 一、算法原理Read more...
【AI】C++八股:main函数之前执行了什么?2025-03-10cpp1243 words 3 mins read一、_start与__libc_start_call_main的作用 _start:程序的入口点 _start是Linux环境下C/C++程序的Read more...
【AI】使用普通的互斥锁实现读写锁2025-03-10cpp1142 words 3 mins read核心在于通过状态管理和锁的组合来模拟读写锁的“读共享、写独占”特性。以下是实现思路和具体方法: 一、实现原理 读写锁的核心规则是: 读读共享:允许Read more...
【AI】mmap 和零拷贝2025-03-07linux4663 words 10 mins readmmap(Memory Mapping)是Unix/Linux系统中的一种重要机制,它允许将文件或设备直接映射到进程的虚拟地址空间,从而将文件Read more...
内核的用户态和内核态2025-03-07linux1202 words 3 mins read线程的管理和调度涉及用户态与内核态的协作,不同编程语言和操作系统对线程的处理方式也有所差异。 一、线程概念的双重性:用户态与内核态的交织 用户态Read more...
进程、线程、协程的资源消耗简述2025-03-07linux845 words 2 mins read一、线程切换 vs 进程切换 地址空间与页表 进程拥有独立的虚拟地址空间和页表,切换进程时需更新页表并刷新 TLB(地址转换缓存),导致内存访问速度下降Read more...
在运行的时候,修改并且覆盖该二进制文件会如何?2025-03-06linux1242 words 3 mins readLinux上有个二进制程序一直在运行,修改代码后重新编译把原来的二进制程序覆盖了,会怎么样? 该问题来自一道天美后台开发面试题:天美一面 后台开Read more...
线程池调度:动态优先级老化(Aging)+ 双队列混合轮询2025-02-25cpp876 words 2 mins readC++中线程池一般使用队列(std::queue)配合外部的std::condition_variable,或者手动构建阻塞队列(BlockRead more...
计时器 timer 的设计2025-02-25cpp1717 words 4 mins read三种经典算法:小顶堆、红黑树、时间轮。 Linux内核多采用时间轮处理中断定时器,而Nginx使用红黑树管理定时事件。 Redis: usUntilEarliestTimer() Nginx: ngx_event_find_timer() 红黑树 Skynet: Netty: 时间轮Read more...
如何让函数安全返回 std::string 的 c_str2025-02-23cpp647 words 2 mins read观察以下这段明显错误的代码: 1 2 3 4 5 6 7 8 9 const char* get_c() { std::string s = "hello world"; return s.c_str(); } int main() { printf("danger : %s\n", get_c()); return 0; } 字符串s是一个函数内部的临时对象,返回的constRead more...