我正在阅读有关网络工作者的这篇文章,并且遇到了有关可转移对象的这一部分:
使用 Transferable Objects,数据从一个上下文传输到另一个上下文。它是零拷贝,极大地提高了向 Worker 发送数据的性能。如果您来自 C/C++ 世界,请将其视为传递引用。但是,与传递引用不同,调用上下文中的“版本”一旦转移到新上下文就不再可用。
为什么?根据我对抽象堆栈机器的理解,可以保留原始指针似乎是完全合理的。诚然,由于数据现在是从另一个上下文中引用的,因此继续使用它将是一项棘手的任务,但并非完全不合理。为什么原始对象被清除?
如果有人在那里有一些有价值的见解,我还想了解整个过程是如何在幕后进行的。