メインスレッドではないスレッド内で c++ から v8 を使用しようとしています。v8に関する限り、マルチスレッドはありません。すべてのv8オブジェクトは、そのスレッド内で作成および破棄されます。何も並行して実行されておらず、何も共有されていません。メインスレッドからプログラムを実行すると、すべて正常に動作します。別のスレッドに v8 のものがある場合、v8::HandleScope を作成するとセグメンテーション違反が発生します。
v8 でスレッド化が実際にどのように処理されているかについての有用なドキュメントが見つかりません。検索すると「アイソレートとロッカーを使用する」という指示が頻繁に表示されますが、これがどのように行われるかの例は見つかりません。v8::Isolate にはこの API doc がありますが、そのページには、特定のケースでそれらが必要かどうかはわかりません (メモリを共有したり、並列で実行したりしていません)。v8::Locker() のドキュメントには、クラスの目的に関する情報さえありません。プロジェクトに含まれるサンプルも、このいずれにも対応していません。
だから私の質問は...
- ここでアイソレートやロッカーを使用する必要がありますか?
- それらの使用方法の最小限の例を得ることができますか? 疑似コードでも何かが本当に役に立ちます