---
title: "非同步行為與局部資訊"
date: "2026-07"
category: "設計模式與架構"
tags: ["設計模式與架構"]
description: "level-triggered 跟 edge-triggered 的區分還挺有意思的，這是非同步I/O中的重要概念，指的就是觸發的模式..."
source: "https://enriquemark.com/zh-hant/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-hant/posts/分布式系统) 中類比的官僚模型來說，就是縣官不如現管的問題。兩側非同步行動，而因其所掌握的資訊（狀態也屬於一種資訊）錯位，而導致了行為錯位。縣官不知現管所作之事，因而做出了錯誤的決策；反過來，現管不知縣官所下的新命令，因而做出了錯誤的行動。對齊始終是隻掌握局部資訊的行為者共同的個問題，不只是程式，在人類的社會活動中也是如此，兩者在這裡就展現出了多體系統的同構性。那麼我在思考，他們的解決思路是否也是在結構上存在一定相似的？從之前的情況可以看出，的確存在這樣的相似性。儘管我不會說分散式軟體工程就等於人類社會，但多體系統的知識仍舊可以具備一定的可遷移性。
