摘要: 使用 Python 和 MCP 构建本地文件操作服务 本文演示如何在 Windows 平台上使用 Python 开发一个基于 Model Context Protocol (MCP) 的本地文件操作服务(包括创建文件夹、删除文件/文件夹、重命名、列出目录内容、移动文件等功能),并在 VS Code 阅读全文
posted @ 2025-07-05 21:50 daligh 阅读(538) 评论(0) 推荐(0)
摘要: 使用docker实现多机部署c++程序 步骤 1:准备你的 C++ 项目 假设你有一个简单的 C++ 项目,包含一个可执行文件 app,它可以通过命令行参数区分不同的节点行为。 C++ 示例代码 (main.cpp): #include <iostream> #include <string> in 阅读全文
posted @ 2025-02-21 13:33 daligh 阅读(69) 评论(0) 推荐(0)
摘要: 为什么栈会被设计的那么小 1. 内存效率 有限的内存资源:栈用于管理函数调用、局部变量和控制信息(如返回地址)。虽然这些结构通常很小,但程序可能同时执行许多函数。如果每个线程或进程都有一个非常大的堆栈,将会浪费内存,尤其是在多线程的环境下。例如,如果每个线程有 10MB 的栈,1000 个线程仅栈就 阅读全文
posted @ 2025-02-11 10:34 daligh 阅读(52) 评论(0) 推荐(0)
摘要: Linux版本 在2.5之前, 版本号用三个数字描述(例如2.6.10)。前两个数字用来表示版本号。第三个数字表示发布号。第一位版本号2从1996年开始就没变过。第二位版本号表示内核的类型: 偶数代表稳定的内核,奇数代表开发中的内核。 2.6的开发过程中,第二个数字不再表示一个内核是稳定版本还是开发 阅读全文
posted @ 2025-02-01 10:40 daligh 阅读(22) 评论(0) 推荐(0)
摘要: 前言 首先,Redis作为一个优秀开源的内存数据结构存储系统,可以用作数据库、缓存和消息中介。它支持多种数据结构,包括字符串、哈希表、列表、集合、有序集合等。当我们谈论Redis中的“哈希表”时,我们通常是指Redis用作数据结构之一的哈希数据类型,而不是Redis内部用于存储所有键值对的全局哈希表 阅读全文
posted @ 2024-11-21 10:25 daligh 阅读(128) 评论(0) 推荐(0)
摘要: 在 Linux 内核中,双向链表是一种非常重要的数据结构,广泛用于各种场景,尤其是在进程管理和调度中。本文将详细介绍 list_head 数据结构的实现及其在进程链表和运行队列中的应用。 1. 双向链表的实现 list_head 数据结构 Linux 内核定义了一个简单的 list_head 结构来 阅读全文
posted @ 2024-11-12 15:28 daligh 阅读(121) 评论(0) 推荐(0)
摘要: 进程标识 在操作系统中,为了实现对进程的有效管理和调度,每个进程都需要有一个唯一的标识。在 Linux 系统中,这种标识主要通过进程描述符(task_struct)和进程标识符(Process ID, PID)来实现。 进程描述符 进程描述符是 Linux 内核用于管理和调度进程的核心数据结构,每个 阅读全文
posted @ 2024-11-12 14:52 daligh 阅读(62) 评论(0) 推荐(0)
摘要: 什么是 Panic? 当 panic 异常发生时,Go 程序会立即中断当前的执行,并运行该 goroutine 中所有已延迟的(defer)函数。之后,程序会崩溃,输出包含 panic 值和调用堆栈跟踪的日志信息。这些信息详细记录了程序崩溃时的状态和 panic 触发的调用路径,通常已足够帮助开发者 阅读全文
posted @ 2024-10-26 15:21 daligh 阅读(495) 评论(0) 推荐(0)
摘要: 在C/C++编程中,调用约定(Calling Convention)是函数调用过程中参数传递、栈清理、返回值处理等规则的集合。不同的调用约定决定了函数参数如何传递(通过寄存器或栈)、函数返回时由谁清理栈、以及如何处理返回值。 本文将详细讨论两种常见的调用约定:__cdecl 和 __stdcall, 阅读全文
posted @ 2024-10-18 10:37 daligh 阅读(1296) 评论(0) 推荐(0)
摘要: 一、选择题 CRUSH算法最初是为哪个分布式存储系统设计的? 正确答案:C. Ceph 解释: CRUSH(Controlled Replication Under Scalable Hashing)算法最初是为 Ceph 分布式存储系统设计的,用于高效地分布和复制数据。 CRUSH算法的主要作用是 阅读全文
posted @ 2024-10-14 14:40 daligh 阅读(155) 评论(0) 推荐(0)
摘要: 虚函数 概念:虚函数,是指被virtual关键字修饰的成员函数。 作用:函数作为多态的实现方式,重要性毋庸置疑。多态意指相同的消息给予不同的对象会引发不同的动作(一个接口,多种方法) 虚函数的内存模型:虚函数(Virtual Function)是通过虚函数表(Virtual Table,简称为V-T 阅读全文
posted @ 2024-10-08 15:45 daligh 阅读(37) 评论(0) 推荐(0)
摘要: 在前后端分离的现代 Web 应用开发中,跨域请求 是一个经常遇到的问题。如果不加以解决,跨域请求会导致前端无法正常访问后端服务。本文将详细介绍跨域请求的概念、CORS 机制的工作原理,并通过代码展示如何在 Gin 框架中解决跨域问题。 什么是跨域请求? 跨域请求,顾名思义,是指从一个域名向另一个不同 阅读全文
posted @ 2024-10-05 15:23 daligh 阅读(170) 评论(0) 推荐(0)
摘要: 文件上传功能简介 文件上传是 Web 应用中常见的功能之一,它允许用户通过浏览器将本地文件上传到服务器。Gin 框架通过其对 multipart/form-data 的支持,使得处理文件上传变得十分简单。我们将从一个简单的示例代码出发,逐步讲解 Gin 框架的关键机制。 文件上传示例代码 首先,我们 阅读全文
posted @ 2024-10-05 15:10 daligh 阅读(515) 评论(0) 推荐(0)
摘要: 缓存是一种常见的技术,用于加速数据访问和减轻数据库负载。然而,在高并发场景中,缓存的使用也可能引发一些问题,特别是缓存雪崩、缓存击穿和缓存穿透。了解并处理这些问题是保障系统稳定性的重要环节。本文将详细介绍这些概念,并通过名称帮助大家区分它们。 一、缓存雪崩 缓存雪崩是指当大量缓存数据在同一时间失效后 阅读全文
posted @ 2024-10-04 12:16 daligh 阅读(70) 评论(0) 推荐(0)
摘要: 在现代编程语言中,垃圾回收器(Garbage Collector, GC)是内存管理的重要工具,它帮助开发者自动回收不再使用的内存对象。然而,随着并发编程的广泛应用,程序在运行过程中会不断修改对象的引用关系,这对垃圾回收器提出了新的挑战。为了解决这一问题,写屏障(Write Barrier)应运而生 阅读全文
posted @ 2024-10-03 16:57 daligh 阅读(261) 评论(0) 推荐(0)
摘要: 摘要 本文将深入探讨垃圾回收机制在现代软件开发中所扮演的角色,包括它为开发者带来的便利以及伴随而来的挑战。通过分析 GC 的优缺点,我们将帮助读者理解何时何地使用 GC 可以最大化其益处,并减少潜在的负面影响。 正文 (1) 垃圾回收的优势 屏蔽内存回收的细节 拥有 GC 能力的语言能够自动处理内存 阅读全文
posted @ 2024-10-03 00:03 daligh 阅读(80) 评论(0) 推荐(0)
摘要: “威尔逊区间”通过调整置信区间来防止投票人数过少导致的排名不可信。然而,这一方法的一个显著问题是:排行榜前列往往被投票数最多的项目占据,而新项目或冷门项目难以脱颖而出。以IMDB为例,假设一部好莱坞大片有10,000名观众投票,而一部小成本文艺片只有100名观众投票。使用“威尔逊区间”时,后者的评分 阅读全文
posted @ 2024-09-26 20:16 daligh 阅读(286) 评论(0) 推荐(0)
摘要: 理解基于牛顿冷却定律的排名算法:温度与时间的衰减模型 在许多内容平台上,例如新闻网站或社交媒体,用户通过投票来表达对文章的支持或反对,这决定了内容的热度。然而,随着时间的推移,内容逐渐失去关注。为了有效衡量“热度”并自动衰减旧内容的排名,牛顿冷却定律提供了一个优雅的解决方案。 1. 什么是牛顿冷却定 阅读全文
posted @ 2024-09-22 10:57 daligh 阅读(229) 评论(0) 推荐(0)
摘要: 一、Delicious的排名算法 Delicious 是一个基于用户书签的内容分享平台,它使用的排名算法非常直观——通过单位时间内用户的投票(收藏)数来确定排名。具体来说,Delicious 会统计过去60分钟内被收藏的次数,得票最多的条目排名靠前。每60分钟,系统更新一次热门内容的榜单。 优点: 阅读全文
posted @ 2024-09-21 22:36 daligh 阅读(139) 评论(0) 推荐(0)
摘要: 随着互联网的发展,RESTful API已经成为开发和集成现代网络应用的主要方式。它以简单、灵活和高度扩展性为特点,在Web、移动应用、微服务等领域广泛应用。本篇博客将从REST的基本理念、设计原则到实际应用,详细介绍RESTful API,并提供最佳实践建议。 一、什么是RESTful API? 阅读全文
posted @ 2024-09-11 14:40 daligh 阅读(135) 评论(0) 推荐(0)
摘要: 在互联网业务中,限流(流量控制)是确保系统稳定性的重要手段,特别是在电商秒杀、热点新闻推送、双十一购物节等场景中。本文将详细介绍两种常见的限流算法——漏桶算法和令牌桶算法,并结合Golang语言进行实现说明。 什么是限流? 限流是指在高并发环境下,控制请求的速率或并发数量,避免系统因负载过大而崩溃。 阅读全文
posted @ 2024-09-11 14:36 daligh 阅读(90) 评论(0) 推荐(0)
摘要: 一、Redis中的数据结构与适用场景 在设计点赞功能时,Redis的多种数据结构能够帮助我们实现不同的需求: ZSet(有序集合):ZSet允许为每个成员指定一个分数,支持按分数排序。我们可以用它来按时间、评分存储和排序帖子。 Set(集合):用于存储不重复的数据,如帖子所属的社区或投票的用户ID。 阅读全文
posted @ 2024-09-09 14:05 daligh 阅读(202) 评论(0) 推荐(0)
摘要: 为了限制一个账号在同一时间只能登录一个设备,常用的方法是使用 token(令牌) 机制结合服务器端的存储与验证。基本思路是,当用户登录时,生成一个 token,并将其与用户的登录状态绑定存储在服务器上。接下来,在用户每次请求时都会携带这个 token,服务器端则验证 token 是否有效、唯一,确保 阅读全文
posted @ 2024-09-09 10:06 daligh 阅读(687) 评论(0) 推荐(0)
摘要: 服务器的性能和稳定性对于任何网站或应用的成功至关重要。无论是应对日常流量还是突发的高并发访问,了解服务器在各种负载下的表现都至关重要。因此,进行合理的压力测试(Stress Testing)不仅可以帮助识别潜在的性能瓶颈,还可以确保系统在高峰期依然能够稳定运行。本文将详细介绍如何合理地对服务器进行压 阅读全文
posted @ 2024-09-03 15:10 daligh 阅读(949) 评论(0) 推荐(0)
摘要: 在Linux开发过程中,程序崩溃时生成核心转储文件(core dump)是调试的重要手段。然而,有时候我们会遇到看不到核心转储文件的情况,或者即使有了核心转储文件,也难以快速找到问题的根源。本文将详细记录一次使用核心转储文件排查问题的过程,希望能为大家提供一些参考。 一、看不到核心转储文件时的处理步 阅读全文
posted @ 2024-09-02 22:18 daligh 阅读(139) 评论(0) 推荐(0)