目录文档-技术白皮书07-EFT.WP.Core.Threads v1.0

第1章 线程模型与命名


I. 范围与对象


II. 基本对象与标识

  1. 线程与执行单元
    • thr:执行单元;pid_thr:线程唯一标识;state ∈ {"new","ready","running","blocked","done","canceled"}。
    • 属性:affinity(cpu 亲和)、prio(优先级)、K_thr(并发上限)。
  2. 执行图与依赖
    G = (V,E);dep(u,v);关键路径 crit(G);w(v)、c(e);makespan T_make(G)。
  3. 消息与通道
    chan(channel);q_len、cap、bp;msg、ack;idemp_key。
  4. 时序与一致性
    tau_mono(单调时钟);ts(UTC 墙钟);hb(happens-before);deadline、timeout、cancel_token。
  5. 速率与时延(排队论)
    lambda、mu、rho = lambda / mu;L、L_q、W、W_q;Little 定律 L = lambda * W。

III. 状态机与生命周期

  1. 状态集合:state ∈ {"new","ready","running","blocked","done","canceled"}。
  2. 允许转移(最小闭包):
    • new -> ready -> running -> done
    • running -> blocked -> ready
    • any_active -> canceled
  3. 基本时延分解:
    • W = W_q + W_run,其中 W_q 由排队与资源竞争引起,W_run 为实际执行时间。
    • 迟到度量:lateness = max(0, ts_finish - deadline);软超时校准以 tau_mono 评估。
  4. 因果关系:
    若 hb(e1,e2) 成立,则记录 eid 序关:seq(e1) < seq(e2);乱序场景需以去重与幂等弥补。

IV. 命名规范与编码方案(TS.*)

  1. 统一命名前缀:TS. 用于线程域对象与度量之语义编码。
  2. 结构化命名:<prefix>.<domain>.<kind>.<name>[.attr...],其中 <domain> ∈ {"core","svc","job","batch"}。
  3. 标识与主键:
    • TS.pid_thr:线程标识。格式 ns:base36(ts_ns)+"-"+rand62(8);唯一性公设见 P71-2。
    • TS.gid:执行图标识。格式 ns:graph-"+hash_sha256(spec)[0:12]。
    • TS.eid:事件标识。格式 pid_thr+"#"+seq64;同一 pid_thr 下单调递增。
  4. 通道与消息:
    • TS.chan.name:通道名(全局唯一);TS.chan.mode ∈ {"mpmc","mpsc","spmc","spsc"}。
    • TS.msg.key:idemp_key;TS.msg.sem ∈ {"at_most_once","at_least_once","exactly_once*"}。
  5. 属性与资源:
    TS.thr.affinity、TS.thr.prio、TS.thr.quota.cpu、TS.thr.quota.mem、TS.thr.quota.io。
  6. 度量与观测:
    TS.sli.latency_ms、TS.sli.queue_time_ms、TS.sli.run_time_ms、TS.sli.qps、TS.sli.err_rate、TS.sli.p99_ms。
  7. 语义标签(统一 tag 键):
    svc、comp、op、gid、pid_thr、chan、sem、region、zone、version、schema_version。
  8. 例表(首批纳入 20 项):
    • TS.pid_thr、TS.gid、TS.eid、TS.chan.name、TS.chan.mode、TS.chan.cap
    • TS.msg.key、TS.msg.sem、TS.retry.count、TS.timeout.ms
    • TS.thr.affinity、TS.thr.prio、TS.thr.K_thr、TS.thr.state
    • TS.sli.latency_ms、TS.sli.queue_time_ms、TS.sli.run_time_ms、TS.sli.err_rate
    • TS.sli.p99_ms、TS.sli.qps

V. 公设与约束(P71-*)


VI. 线程属性与调度提示


VII. 消息交互与投递语义


VIII. 度量字段与聚合窗口


IX. 兼容性与跨卷引用

  1. 与《Core.DataSpec》:线程度量、追踪与日志作为 D 的 R 写入,manifest 记录 schema_version 与 Trace。
  2. 与《Core.Equations》《能量丝》两口径引用(用于时间校准或传播延迟建模):
    • 常量外提:T_arr = ( 1 / c_ref ) * ( ∫ n_eff d ell )
    • 一般口径:T_arr = ( ∫ ( n_eff / c_ref ) d ell )
    • 差异衡量:delta_form = | ( 1 / c_ref ) * ( ∫ n_eff d ell ) - ( ∫ ( n_eff / c_ref ) d ell ) |。
  3. 冲突名强制:T_fil 与 T_trans 不可混用;n 与 n_eff 严格区分;使用 gamma(ell) 与 d ell 明确路径与测度。

X. TS. 编码卡片(示例与校验)*

  1. TS.pid_thr
    • 定义:线程全局唯一标识。
    • 形制:ns:base36(ts_ns)+"-"+rand62(8);示例 svcA:kr3t9z2s-1B9xYpQZ。
    • 约束:唯一(P71-2);ns 采用小写字母与短横线。
  2. TS.eid
    • 定义:事件标识(线程内单调)。
    • 形制:pid_thr+"#"+seq64;示例 svcA:...#0000000F。
    • 约束:同一 pid_thr 下严格递增(P71-2)。
  3. TS.gid
    • 定义:执行图标识。
    • 形制:ns:graph-"+hash_sha256(spec)[0:12]。
    • 约束:跨发布版本稳定,spec 变更导致 gid 变更。
  4. TS.chan.name
    • 定义:通道名。
    • 形制:ns.comp.op;示例 svcA.ingest.parse。
    • 约束:全局唯一;mode、cap 必配。
  5. TS.msg.sem
    • 定义:投递语义。
    • 取值:"at_most_once"|"at_least_once"|"exactly_once*"。
    • 约束:与去重策略一致(P71-4)。
  6. TS.sli.latency_ms
    • 定义:端到端延时。
    • 形制:数值型;单位 ms;窗口 SLA_window 聚合 p50/p95/p99。
    • 校核:latency_ms = queue_time_ms + run_time_ms(容差内相等)。
  7. TS.thr.quota.*
    • 定义:资源配额。
    • 形制:cpu(核)、mem(字节或单位后缀)、io(MB/s)。
    • 约束:不得突破(P71-5)。

XI. 最小校验清单(落地 Mx-1 片段)


XII. 术语冲突清单(执行与计量交叉)


XIII. 小结与出厂条件

  1. 线程域对象以 TS.* 统一命名,标识与度量满足 P71-*;状态机与语义闭环于 thr/chan/sem/hb。
  2. 满足以下条件方可进入第2章调度设计:
    • 已定义 TS.pid_thr/TS.gid/TS.eid/TS.chan.* 且通过唯一与单调校验。
    • 已声明 quota 与 K_thr 并通过资源预算校核。
    • 已完成 SLI 字段映射与 SLA_window 聚合策略。

版权与许可(CC BY 4.0)

版权声明:除另有说明外,《能量丝理论》(含文本、图表、插图、符号与公式)的著作权由作者(“屠广林”先生)享有。
许可方式:本作品采用 Creative Commons 署名 4.0 国际许可协议(CC BY 4.0)进行许可;在注明作者与来源的前提下,允许为商业或非商业目的进行复制、转载、节选、改编与再分发。
署名格式(建议):作者:“屠广林”;作品:《能量丝理论》;来源:energyfilament.org;许可证:CC BY 4.0。

首次发布: 2025-11-11|当前版本:v5.1
协议链接:https://creativecommons.org/licenses/by/4.0/