- 博客(17)
- 问答 (17)
- 收藏
- 关注
原创 Python中GIL与LRock与Rock的区别
GIL是Python解释器的全局锁,确保同一时刻只有一个线程执行Python字节码。它主要影响CPU密集型多线程程序的性能,但对I/O密集型任务影响较小。GIL的存在简化了CPython的内存管理,但也限制了多线程的并行效率。Lock是线程同步的基本工具,同一时间只允许一个线程访问共享资源。Lock不支持重入,即持有锁的线程再次请求同一锁会导致死锁。RLock允许同一线程多次获取锁而不会阻塞,每次获取必须对应相同次数的释放。它解决了Lock在递归调用或复杂逻辑中可能导致的死锁问题,适用于需要嵌套锁的场景。
2026-04-16 17:02:18
198
原创 【003】LangChain+通义千问 RAG知识库问答代码-可运行(代码在文章末尾)
本文介绍了使用LangChain结合通义千问搭建RAG知识库问答系统的核心代码实现。文章采用通俗易懂的方式,详细讲解了从环境配置、组件导入到知识库构建的完整流程。该系统通过向量检索增强生成技术,先检索本地知识库中的相关资料,再让AI基于检索结果生成回答,有效避免了传统AI问答中可能出现的"胡编乱造"问题。文中重点解析了关键组件如Chroma向量库、DashScope嵌入模型、ChatTongyi大模型等的作用和使用方法,并提供了完整的代码示例,帮助读者快速构建属于自己的知识库问答应用。
2026-01-15 16:47:14
1031
原创 【002】LangChain+通义千问四种对话的模式-可运行(完整代码在结尾)
LangChain框架对接阿里云通义千言大模型实践,完整实现了「无状态对话、带上下文记忆对话、超长对话修剪、流式实时输出」四种生产级别的对话能力,从基础到进阶,逻辑非常完整,我会逐模块、逐知识点详细讲解
2026-01-14 11:51:26
1282
原创 【001】LangChain + 通义千问大模型实现多语言互译-可运行(完整代码在结尾)
langchain学习笔记:本文介绍了基于LangChain框架和通义千问大模型的多语言翻译实现方案。方案支持同步和流式两种翻译模式,前者一次性返回完整结果,后者实现逐字输出的打字效果。技术实现上使用LangChain构建执行链,通过RunnableLambda封装核心函数,并详细说明了通义千问API调用格式、温度系数配置等关键概念。文章包含完整的代码解析、环境配置说明及实际调用示例,为开发者提供了可直接运行的翻译工具实现方案。
2026-01-14 10:04:41
892
原创 Linux终端常用命令行
以下是 Linux 终端最常用命令的分类总结,涵盖文件操作、系统管理、权限控制、网络操作等核心场景:Linux 权限分为 读(r=4)、写(w=2)、执行(x=1),对应所有者(u)、所属组(g)、其他用户(o)
2026-01-08 09:23:28
612
原创 Windows 下通过 WSL 安装 Ubuntu 24.04 + SDKMAN + Maven 完整操作总结
本文详细介绍了在Windows下通过WSL安装Ubuntu 24.04并配置开发环境的完整流程。主要内容包括:WSL和Ubuntu 24.04的安装配置、SDKMAN工具管理器的安装、Java环境的设置(Maven依赖)以及Maven的安装与优化。整个过程通过命令行操作实现,无需复杂手动配置,具有环境无缝集成、工具管理简化等优势。文章还提供了后续版本管理和WSL维护的常用命令,最终可在WSL的Ubuntu环境中使用完整的Maven开发功能。
2026-01-07 16:52:04
901
原创 Vue3组件之间的通信
Vue3组件通信方式总结:父子组件优先使用Props/Emits进行数据传递,父组件可通过ref+defineExpose访问子组件方法。兄弟组件推荐使用Pinia状态管理,避免直接耦合。跨层级组件可使用provide/inject或Pinia全局状态。Vue3保留了Vue2的经典方案,同时引入Composition API提供更灵活的通信方式,开发者应根据组件关系选择合适的方案,遵循单向数据流原则。
2026-01-06 17:53:19
1184
原创 VUE2与VUE3主要区别
本文整合所有讨论内容,从生命周期、computed/methods、响应式原理、API 设计、全局 API、组件特性、性能等核心维度,全面梳理 Vue2 与 Vue3 的差异,明确二者的兼容特性与使用一致性。
2026-01-04 17:44:12
1398
原创 JS:深浅拷贝,异常处理,处理this,性能优化
深拷贝与浅拷贝的概念在JavaScript中,拷贝对象或数组时,根据拷贝的层级不同分为浅拷贝和深拷贝。浅拷贝只复制对象的第一层属性,如果属性是引用类型(如对象、数组),拷贝的是引用地址,新旧对象会共享同一块内存。修改嵌套对象时,原对象和拷贝对象都会受到影响。深拷贝会递归复制所有层级的属性,新旧对象完全独立,修改任何一方都不会影响另一方。浅拷贝的实现方法...slice深拷贝的实现方法这种方法简单,但无法处理函数、undefinedSymbol等特殊类型,且会丢失原型链。
2025-12-04 23:22:45
788
原创 JS中的面向对象
摘要:本文系统介绍了JavaScript面向对象编程的核心概念。重点讲解了原型链机制,包括构造函数、原型对象、原型链继承的实现方式,以及constructor属性的作用和注意事项。同时阐述了面向对象的三大特性:封装(通过闭包实现)、继承(ES6 class语法)和多态(方法重写)。此外还介绍了静态方法、属性描述符、混入模式等高级特性。文章通过大量代码示例,展示了JavaScript基于原型的OOP实现与ES6 class语法糖的关系,为开发者提供了全面的面向对象编程指导。
2025-11-27 23:43:03
659
原创 Vue2组件之间的通信:props、emits、vuex
子组件中需要声明props来接收父组件传递的数据。props可以是数组或对象形式。// 子组件 ChildComponent.vueprops: ['message'], // 数组形式// 或者使用对象形式进行类型验证props: {message: {default: '默认值'
2025-11-19 23:22:39
897
原创 CSS动态效果之2D、3D与animation动画
CSS 2D转换允许通过平移、旋转、缩放和倾斜等方式改变元素的形状和位置,而不影响文档流。2D转换通过属性实现,支持多种变换函数。通过函数移动元素,参数为水平和垂直方向的偏移量。使用函数以指定角度旋转元素,单位为(度)。负值表示逆时针旋转。通过函数调整元素尺寸,参数为水平和垂直比例的倍数。 单方向缩放:或。倾斜(Skew)使用函数沿X轴和Y轴倾斜元素,单位为。 单方向倾斜:或。复合转换多个转换函数可组合使用,空格分隔,按从右到左顺序执行。转换原点(Tra
2025-10-30 22:38:05
1037
原创 css中容易忘记的重要知识点
摘要:本文介绍了CSS核心布局技术,包括盒模型(content-box与border-box的区别)、三种显示模式(inline/inline-block/block的特性与应用场景)、Flex布局(容器与项目的控制方法)以及定位系统(static/relative/absolute/fixed/sticky的定位机制)。重点解析了flex-direction/justify-content等Flex属性对子元素的排列控制,并详细说明了position各值的层叠规则及z-index在定位元素中的层级管理技巧
2025-10-28 00:24:38
615
1
空空如也
Vs上面连接GitHub失败
2022-07-18
引用传递与地址传递本质没有区别吗
2022-07-11
关于var提升打印问题
2022-04-17
给二维数组赋值是什么导致了“写入访问冲突”,该如何处理?
2022-03-17
删除没有问题啊 为什么不输出啊 这个函数错在哪里啊
2021-11-23
这是类的这是什么错误的
2021-11-27
代码没错但是VS跳出这个 如何解决呀
2021-12-01
在写类的时候,代码没有错情况下,什么导致了外部无法解析的外部命名?
2022-03-05
枚举类型语句如何判断的呀
2022-01-05
这个表达式如何判断呢?
2022-01-05
如何计算这里的字节数和长度?
2022-01-05
有关类的弹出错误重定义,但是头文件也没有重复啊 是什么原因
2021-12-27
代码没有跳错但是跳出来说我多重定义 啥意思啊
2021-12-20
跳出多重定义的错误 头文件没有问题啊 到底是哪的错啊
2021-12-20
为什么类文件有 但是cpp却说没有重载
2021-12-12
类的 中重载这个问题到底是啥啊
2021-12-12
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅