---
title: "异步行为与局部信息"
date: "2026-07"
category: "设计模式与架构"
tags: ["设计模式与架构"]
description: "level-triggered 跟 edge-triggered 的区分还挺有意思的，这是异步I/O中的重要概念，指的就是触发的模式..."
source: "https://enriquemark.com/zh-hans/posts/%E5%BC%82%E6%AD%A5%E8%A1%8C%E4%B8%BA%E4%B8%8E%E5%B1%80%E9%83%A8%E4%BF%A1%E6%81%AF"
---

level-triggered 跟 edge-triggered 的区分还挺有意思的，这是异步I/O中的重要概念，指的就是触发的模式。前者指的是水平触发，类似分层，用浓度来比喻的话，就是只要系统的外部环境维持在特定等级，他就会持续触发通知；而后者则是一次性的触发，只在情况发生变更的时候触发一次。这两者其实完全是同一个状态变化模式下的两种不同触发行为：LT是根据不同水平，主语绑在水平上，A级是持续发送，B级减少发送，C级不发送；ET指的是切换的瞬间，A-B，在此处发生变化，发送一次，B-C，在此处发生变化，再发送一次。

在我看来，这些实际上都是为了解释「局部信息」的对齐问题。套用我先前在 [分布式系统](/zh-hans/posts/分布式系统) 中类比的官僚模型来说，就是县官不如现管的问题。两侧异步行动，而因其所掌握的信息（状态也属于一种信息）错位，而导致了行为错位。县官不知现管所作之事，因而做出了错误的决策；反过来，现管不知县官所下的新命令，因而做出了错误的行动。对齐始终是只掌握局部信息的行为者共同的个问题，不只是程序，在人类的社会活动中也是如此，两者在这里就展现出了多体系统的同构性。那么我在思考，他们的解决思路是否也是在结构上存在一定相似的？从之前的情况可以看出，的确存在这样的相似性。尽管我不会说分布式软件工程就等于人类社会，但多体系统的知识仍旧可以具备一定的可迁移性。
