并发与文件锁
Concurrency & File Locking
在多进程并行场景下通过文件锁保证共享状态的原子性更新
子问题
1.竞态条件防护
2.原子读-改-写
3.进程间同步
4.锁粒度控制
5.锁范围一致性(同一项目不同模块锁范围不一致的工程风险)
6.运行时配置文件的进程间隔离
各项目的解法1 solutions
Signals
横向对比
| 维度 | AI-Trader |
|---|---|
| 锁机制 | fcntl.flock(LOCK_EX) POSIX 文件排他锁 |
| 锁粒度 | per-signature 独立锁文件,不同 Agent 零竞争 |
| 原子操作范围 | 加密货币交易完整覆盖读-改-写;股票交易锁范围不足(已知缺陷) |
| 并行模型 | asyncio.create_subprocess_exec 多进程并行,asyncio.gather 等待 |
| 数据格式 | JSONL 追加写入 + 递增 action_id 事务日志 |
| 跨平台兼容 | 仅 Unix/macOS(fcntl),无 Windows 支持 |
最佳实践
1.使用 fcntl 文件锁而非内存锁实现跨进程同步
2.锁文件与数据文件同目录放置,便于生命周期管理
3.asyncio subprocess + --signature 参数实现进程级 Agent 隔离