同步 vs 异步:核心区别、适用场景与实现技术
1. 核心区别
维度
同步(Synchronous)
异步(Asynchronous)
执行顺序
代码顺序执行,必须等待当前操作完成
操作发起后立即继续执行,不等待结果
阻塞性
阻塞主线程(卡住后续代码)
非阻塞(其他任务可并行执行)
资源占用
高(线程/进程被占用等待)
低(单线程可处理多任务)
复杂度
简单直观
需要处理回调/Promise/事件机制
典型代码
const data = readFileSync()
readFile(() => { ... })
2. 适用场景
同步编程适合:
简单脚本:如配置文件读取、启动初始化
原子性操作:必须严格按顺序执行的步骤(如数据库事务)
CPU密集型任务:数学计算、加密解密(无I/O等待)
示例:
// 同步读取配置文件(启动时只需执行一次)const config = JSON.parse(fs.readFileSync('config.json'));server.start(config.po ...
Javascript: Asynchronous Programming
异步函数(Async/Await)属于 JavaScript 中的哪个知识领域?
异步函数(async/await)属于 JavaScript 异步编程 的核心概念,具体涉及以下知识领域:
1. 核心归属:异步编程(Asynchronous Programming)
异步函数是 JavaScript 处理异步操作的现代方案,属于 异步编程 的范畴,与以下技术直接相关:
• Promise(ES6):async/await 本质是 Promise 的语法糖。
• 事件循环(Event Loop):理解 await 的非阻塞原理需要掌握事件循环机制。
• 回调函数(Callback):异步函数解决了回调地狱问题。
知识树定位:
JavaScript → 异步编程 → Promise → Async/Await
2. 关联的细分知识点
① ECMAScript 标准(ES6+)
• ES2017(ES8):async/await 是 ES2017 正式加入的语法。
• ES6(ES2015):基于 Promise, ...
Development
未读业务逻辑 (Buisness Logic)
业务逻辑 VS 技术实现
在软件开发中,业务逻辑(Business Logic)是指实现具体业务规则和流程的代码部分,它直接决定了系统如何执行业务操作(例如订单处理、用户权限验证、数据计算规则等)。简单来说,就是“系统做什么以及怎么做”的核心规则。
业务逻辑 vs. 技术实现
业务逻辑
是什么:业务领域的规则(例如电商的折扣计算、银行的利息算法)。
特点:与行业需求强相关,通常由产品经理或业务专家定义。
技术实现
是什么:如何用代码、架构、工具实现业务逻辑(例如用Java还是Python、是否用微服务)。
特点:关注性能、可维护性、扩展性等技术指标。
哪个更重要?
没有绝对答案,但优先级通常取决于项目阶段和类型:
早期/业务驱动型系统(如金融、电商):业务逻辑更重要。
例子:支付宝的支付规则若出错,技术再强也白搭。
技术驱动型场景(如高并发、AI模型):技术实现可能更关键。
例子:抖音的推荐算法需要强大的技术支撑。
长期来看:
业务逻辑错误会导致系统无法满足需求(本质问题);
技术实现差会导致系统崩溃或难以维护(体验 ...
OS: 面试
如何避免死锁?
死锁的避免(Deadlock Avoidance)是一种通过动态评估资源分配的安全性来预防死锁的策略。其核心思想是在分配资源前预测是否会导致系统进入不安全状态,从而决定是否允许该次分配。以下是死锁避免的关键方法和技术:
1. 安全状态与不安全状态
• 安全状态:存在至少一个资源分配序列(安全序列),使得所有进程都能顺利完成,不会导致死锁。
• 不安全状态:不存在这样的序列,可能引发死锁(但不一定立即发生)。
死锁避免算法通过确保系统始终处于安全状态来预防死锁。
2. 银行家算法(Banker’s Algorithm)
最经典的死锁避免算法,由Dijkstra提出,模拟银行家放贷的过程:
核心数据结构
• Available:当前可用资源向量。
• Max:每个进程声明的最大资源需求矩阵。
• Allocation:已分配给各进程的资源矩阵。
• Need:每个进程还需要的资源矩阵(Need = Max - Allocation)。
算法步骤
安全性检查:
• 寻找一个进程,其Need ≤ Available。
• 假设该进程完成并释放资源,更新A ...
Graphics
未读Graphics: Texture
有几种贴图?
在图形学中,贴图(Texture)是增强3D模型真实感和细节的核心技术。以下是12种常见贴图类型的分类详解,涵盖它们的作用、原理、应用场景及使用方法,结合代码和案例说明:
📌 1. 基础颜色贴图(Albedo/Diffuse Map)
• 作用:定义材质的基础颜色(无光照信息)。
• 为什么需要:分离颜色与光照计算,避免重复烘焙阴影。
• 格式:sRGB色彩空间(通常为PNG/JPG)。
• 用法示例(GLSL):
vec3 albedo = texture(albedoMap, uv).rgb;
📌 2. 法线贴图(Normal Map)
• 作用:模拟表面凹凸细节(不改变几何体)。
• 为什么需要:低多边形模型表现高模细节。
• 原理:RGB通道存储切线空间法线向量(范围[-1,1]映射到[0,1])。
• 用法:
vec3 normal = texture(normalMap, uv).rgb * 2.0 - 1.0; // 转换到切线空间normal = normalize(TBN * normal); // TB ...
MIT6.5840-2024 Lab1: MapReduce
Lab1 URL: http://nil.csail.mit.edu/6.5840/2024/labs/lab-mr.html
Your Job
Your job is to implement a distributed MapReduce, consisting of two programs, the coordinator and the worker. You should put your implementation in mr/coordinator.go, mr/worker.go, and mr/rpc.go.
Coordinator:
There will be just one coordinator process
Notice if a worker hasn’t completed its task in a reasonable amount of time and give the same task to a different worker.
Worker:
One o ...
Fundamentals of Computer System
Projects
CSAPP Labs
一生一芯项目
Courses
OS
NJU jyy 操作系统:设计与实现
MIT6.1810 Operating System Engineering
Distributed System
MIT6.5840-2024-Distributed-System
Parallel Computing
CS149-Parallel-Computing
Compiler
Stanford CS143 Compiler
Books
“CSAPP” Randal E. Bryant and David R. O’Hallaron. Computer Systems: A Programmer’s Perspective (3ed). Pearson, 2017.
“OSTEP” Remzi H. Arpaci-Dusseau and Andrea C. Arpaci-Dusseau. Operating Systems: Three Easy Pieces. Arpaci-D ...
English
Spoken English
Stress-timed language, not syllable-timed language
Pronounce the stress as a central vowel
【英语的节奏和"等时性"(这才是中式英语的罪魁祸首!)】
【英语的节奏和"等时性"(这才是中式英语的罪魁祸首!)】
【美式英语连读教程 | A Painting】
怎么说英语
你遇到的其实是英语应用场景的分裂——能读懂技术英语(被动输入),但无法流畅表达日常英语(主动输出)。这是很多理工科学生的共同痛点,根本原因在于技术英语和日常英语的本质差异,以及输入与输出的训练不平衡。
为什么你能读懂技术文档,却说不出日常英语?
• 技术英语的特点:
• 词汇固定(术语多,比如API、asynchronous);
• 句式结构化(文档/论文有固定模板);
• 逻辑性强(不需要灵活表达,只需理解)。
• 你熟悉的其实是“模式匹配”——通过反复接触技术场景的固定表达,大脑形成了条件反射。
• 日常英语的难点:
• 词汇灵活(俚语 ...
English Expressions
Memory Card
Program
report_bug:- "It throws an error when...",- "The output is unexpected because...",- "Can you reproduce this issue?"
Daily Life
"What to do on the weekend?":- "Just chilling at home.",- "Hiking with friends!",- "Catching up on Netflix."
News
Allegedly, …
Campus
Key words
dorm, frat house, fart party, sketchy area
“Harvard or MIT?”
“MIT. Hands down.”
High School
Keyword
afternoon nap,
...