dxEventBus-RPC: 跨线程远程过程调用
简介
在 dxEventBus 的基础上,DejaOS 提供了一套优雅的 RPC (Remote Procedure Call) 机制。它允许一个线程(主线程或 Worker)像调用本地函数一样,调用另一个线程中预先注册好的函数,并异步地获取返回值。
为什么称之为 RPC?
您可能已经知道,Worker 本质上是线程。但在 DejaOS 中,每个 Worker 都是一个完全隔离的 JavaScript 虚拟机(VM),拥有独立的内存和上下文,无法共享任何数据(dxMap/dxQueue 除外)。这种隔离的特性使它们在行为上更像独立的进程。
因此,当我们需要在一个线程中调用另一个线程的函数时,这种模式与分布式系统中的“远程过程调用 (RPC)” 在概念上高度一致。我们使用 RPC 这个术语,正是为了强调这种跨越隔离环境的函数调用