8
マルチスレッドJavaScriptランタイム実装を作成することの欠点は何ですか?[閉まっている]
この1週間、マルチスレッドJavaScriptランタイムの実装に取り組んでいます。JavaScriptCoreとboostを使用して、C ++で作成した概念実証があります。 アーキテクチャは単純です。メインスクリプトの評価が完了すると、ランタイムは起動してスレッドプールに参加します。スレッドプールは、共有優先度キューからタスクを選択し始めます。2つのタスクが同時に変数にアクセスしようとすると、アトミックとマークされ、アクセスを争います。 問題は、この設計をJavaScriptプログラマーに見せると、非常に否定的なフィードバックが得られ、その理由がわからないことです。非公開でも、JavaScriptはシングルスレッドである必要があり、既存のライブラリを書き換える必要があり、作業を続けるとグレムリンがすべての生物を生成して食べると言う。 私はもともとネイティブのコルーチン実装(ブーストコンテキストを使用)も配置していましたが、それを捨てなければなりませんでした(JavaScriptCoreはスタックについてはしゃれています)。 どう思いますか?JavaScriptはシングルスレッドを対象としていますが、JavaScriptはそのままにしておくべきですか?誰もが同時JavaScriptランタイムのアイデアに反対しているのはなぜですか? 編集:プロジェクトは現在GitHubにあります。自分で試してみて、あなたの考えを教えてください。 以下は、競合なしですべてのCPUコアで並行して実行されるプロミスの図です。