@zimtsui/freeseq
v0.0.9
Published
为了在前端用时序图展示后端多线程任务的进度,FreeSeq 用于在后端向前端实时传输线程 fork join 时间。
Readme
FreeSeq
为了在前端用时序图展示后端多线程任务的进度,FreeSeq 用于在后端向前端实时传输线程 fork join 时间。
Concepts
- 每一个
Thread代表前端时序图中的每一条生命线。 - 每一个
Worker代表后端的一个协程。
每个时刻,每个 Worker 在且仅在一个 Thread 上工作。
freeseq.fork用于将当前Worker所在的Thread分叉出一个新的Thread。这在前端时序图中表现为一条新的生命线以及一条从当前生命线指向新生命线的消息线。
freeseq.join用于将另一个Thread聚合到当前Worker所在的Thread上。这在前端时序图中表现为另一条生命线从此刻开始进入静息状态以及一条从它指向当前生命线的消息线。
Worker.exec使当前Worker离开所在Thread前往另一个Thread去工作。这在前端时序图中表现为从此刻开始当前生命线进入静息状态,另一条生命线从此刻开始进入活跃状态。
FreeSeq 只不过是 onfork 和 onjoin 监听器的一个 wrapper。如果创建两个 FreeSeq 实例,它们获取到的线程状态是共享的。
PromiseLike
如果一个函数的返回值类型是 PromiseLike,那么表示其有可能同步地抛出异常。
