37 lines
1.2 KiB
Markdown
37 lines
1.2 KiB
Markdown
---
|
||
title: "并发编程"
|
||
type: concept
|
||
tags: [software-engineering, concurrency, multi-threading, async]
|
||
sources: [开发经验与项目规范整理文档]
|
||
last_updated: 2025-12-30
|
||
---
|
||
|
||
## Definition
|
||
|
||
**并发编程** 是指程序中多个执行流同时存在的编程范式,需要处理共享资源、数据竞争、锁机制等问题。
|
||
|
||
## Core Principles
|
||
|
||
- 清晰区分共享资源
|
||
- 避免数据竞争(Race Condition)
|
||
- 必要时加锁或使用线程安全结构
|
||
- 区分「并发处理」和「异步处理」的差异
|
||
|
||
## Concurrency vs Async
|
||
|
||
| 维度 | 并发(Concurrency) | 异步(Async) |
|
||
|------|---------------------|--------------|
|
||
| 目标 | 同时执行多个任务 | 不阻塞等待 I/O |
|
||
| 实现 | 多线程、多进程 | 事件循环、回调、Promise |
|
||
| 问题 | 数据竞争、死锁 | 回调地狱、状态管理 |
|
||
|
||
## Related Concepts
|
||
|
||
- [[单一职责原则]] — 线程安全的函数应保持单一职责
|
||
- [[输入-处理-输出模型]] — 并发环境下的数据流管理
|
||
- [[消息队列]] — 替代直接共享资源的并发安全方案
|
||
|
||
## Source Reference
|
||
|
||
来源:[[开发经验与项目规范整理文档]]
|