Thread#post(args) や ThreadProxy#post(args) の args の値は、実は毎回コピーが行われています。
この仕組は Structured clone と呼ばれています。
この Structured clone によるクローニングは少量のデータにおいては十分に高速ですが、送信するデータが増えると物量に比例して遅くなってしまいます。
と心配する方もいるでしょう。
Thread.js は Transferable Object をサポートしており、この仕組を使うとメモリをコピーせず、所有権だけを他のスレッドに譲渡することができます。 (C/C++をご存知の方はメモリのアドレスを渡す…と考えるとイメージを掴みやすいでしょうか)
Transferable Object を使うと、不要なメモリコピーを抑止することができます。 大きなメモリをスレッド間で移動させる場合は、できるだけ利用するようにしてください。
There was an error while loading. Please reload this page.
Overview