問題タブ [dart-isolates]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
dart - DART Isolate と Thread の違い (Java、C#)
私にとって、DART Isolate は用語が異なるスレッド (Java/C#) のように見えます。Isolate が Thread と異なる点はどれですか?
dart - プラグイン アーキテクチャの設計
Dart でプラグイン アーキテクチャ コアを設計するためのアプローチの概要を教えてください。
Dart で実行中のアプリケーション コアにプラグインを追加、更新、および削除するにはどうすればよいでしょうか?
Dart のディスカッション グループ ( https://groups.google.com/a/dartlang.org/forum/#!topic/misc/O3BA_9FXcp4 ) でいくつかの回答が既に提供されています。
このような質問にはstackoverflowの方が適しているため、スレッドをここに移動します。
multithreading - Isolates でスローされた例外を処理する方法は?
私は Dart を試しており、新しいstreamSpawnFunction
ものを使用して新しい分離を作成しています。
Dartium でコードを実行していますが、isolate で回復不能なエラーが発生した場合、コンソールにエラー メッセージが表示されないことに気付きました。Isolate コードのブレークポイントが機能しないため、デバッグは本当に苦痛です。
古い Port ベースの Isolate spawn 関数 ( spawnFunction
) には、エラーを処理するためのコールバック関数があります。なぜこれが で利用できないのだろうかstreamSpawnFunction
。Isolate のエラー イベントをサブスクライブする新しい方法はありますか?
dart - Dart Isolate unhandledExceptionCallbackをどのように使用する必要がありますか?
Dart WebアプリケーションでIsolatesを使用しようとしていますが、エラーコールバック引数を機能させることができないようです。Dartiumで実行されている非常に基本的なコードがあります。
「メイン」以外は見たことがありません。コンソールに印刷されます。私は何か間違ったことをしていますか、それとも今これは壊れていますか?
dart - 2 つの Dart VM 間の通信を確立する最も簡単な方法は何ですか?
2 つの Dart VM 間の通信を確立するための推奨される方法は何ですか? ここで推奨されているように、分離しますか?
dart - 長時間実行されている分離を終了する方法
Java チェス エンジンをダーツに移植する方法を理解しようとしています。
したがって、Isolates や Futures を使用してエンジンを GUI と並行して実行する必要があることを理解しましたが、エンジンに強制的に検索を終了させるにはどうすればよいでしょうか。
Java では、エンジン スレッドと GUI スレッドの間で共有されるブール値を設定しました。
dart - 長時間実行されている分離を終了する方法 #2
Java チェス エンジンをダーツに移植する方法を理解しようとしています。
したがって、Isolates を使用してエンジンを GUI と並行して実行する必要があることを理解しましたが、エンジンに強制的に検索を終了させるにはどうすればよいでしょうか。
Java では、エンジン スレッドと GUI スレッドの間で共有されるブール値を設定しました。
私が得た答え:
アイソレートにメッセージを送信して、停止するように指示する必要があります。次のようなことが簡単にできます。
port.send('停止');
私の要求
明確にしていただきありがとうございます。私が理解していないのは、port.send('THINK') コマンドが原因でチェス エンジンの分離がビジーである場合、port.send('STOP') コマンドにどのように応答できるかということです。
dart - Dart: 着信 HTTP リクエストを並行して処理する
複数のリクエストを並行して処理できる HTTP サーバーを Dart で作成しようとしています。これまでのところ、「並列」の部分を達成することに成功していません。
最初に試したのは次のとおりです。
リクエストごとに、ビジーな作業を 1 秒間実行してから完了します。タイミングが予測できるように、この方法でリクエストを処理するようにしました。そのため、Windows タスク マネージャーでリクエストの効果を簡単に確認できます (CPU コアが 100% 使用率にジャンプします)。
次の理由により、これはリクエストを並行して処理していないことがわかります。
いくつかのブラウザー タブを読み込んでから
http://example:8080/
すべてを更新すると、タブが次々に読み込まれ、それぞれのタブが約 1 秒間隔で読み込まれます。これらの設定で 負荷テスト ツールwrk
wrk -d 10 -c 8 -t 8 http://example:8080/
を使用すると... ...指定した 10 秒で 5 ~ 8 件の要求が完了します。サーバーが私の 8 つのコアすべてを使用していた場合、80 に近い数のリクエストが予想されます。ワーク テスト中に Windows タスク マネージャーを開くと、使用率がほぼ 100% に近いコアは 1 つだけで、残りはほとんどアイドル状態になっていることがわかります。
そこで、リクエストごとに新しいisolate/threadを手動で生成することを期待して、isolateを使用してみました:
これはまったく機能しません。Isolate へのメッセージとして HttpRequest を送信しようとしているのは好きではありません。エラーは次のとおりです。
使用したバージョン:
- Dart Editor バージョン 0.5.9_r22879
- Dart SDK バージョン 0.5.9.0_r22879
Dart を使用して、マシンの利用可能なすべてのコアでこれらのリクエストを並行して処理することは可能ですか?
debugging - 分離株のデバッグ
分離株のデバッグに失敗しました。つまり、デバッガーはアイソレートのブレークポイントで停止しません。
これは現時点ではサポートされていないと思いますが、私の質問は.
1) 分離株のデバッグがまだサポートされていないというのは正しいですか?
2) もしそうなら、近い将来これをサポートする計画はありますか?