問題タブ [event-driven]
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.
java - この CPU シミュレーション アプリに Java の「ワーカー スレッド」を使用する必要がありますか?
私は Java/Swing で古いコンピューターのエミュレーターを書いていますが、私が抱えている設計上の問題を特定したと思います。このアプリケーションは独特ですが、誰かがこの問題の「パターン」を見つけるのではないかと思います。
私はまだ OOP、GUI、およびデザイン パターンの初心者であることを付け加えておきます。
マシンには、押しボタンとスイッチを備えた GUI スレッド (コンソール) と、コンソールが通信してコンソール イベントによって CPU の状態を変更するモデル スレッド (CPU) があります。もちろん、コンソールは AWT イベント キューからのイベント ドリブンです。コンソールは、CPU が受信するプライオリティ ブロッキング キューにメッセージをキューイングすることによって、CPU と通信します。そのため、CPU もイベントループとして構造化されています。ここまでは順調ですね。
問題は、コンソールで START を押すと、CPU がメモリに持っているプログラムの実行を開始することです。コンソールからのスイッチ スローとボタン押し (STOP など) に応答する必要がありますが、主にそこに座って、命令フェッチ - デコード - 実行ループをスピンする必要があります。
それもしばらくの間は問題になりませんでした。Cycle()というメソッドがありました。このメソッドは、現在の命令の特定の「サイクル」を実行してから戻り、次のサイクルを実行するためにすぐに再ディスパッチされます。CPU の実行ループ内に Cycle() の呼び出しを配置し、サイクルごとにメッセージ キューをポーリングしました。CPU が停止した場合、実行ループは単にメッセージ キューで待機します。
現在: I/O 命令を実装しています。たとえば、カードの読み取りなどです。サイクルの 1 つで、問題の周辺機器 (それ自体は別のスレッドで実行される GUI/モデルとして実装されている) にデータの要求を送信し、データが到着するのを待つ必要があります。これにより、CPU が単純なイベント ループであるという概念全体が完全に破られ、メッセージを受信し、プロセスでブロックを発生させることなくそれらに作用します。この新しいサイクルはブロックされます。また、オペレーターがカード デッキをリーダーにロードしていない場合、長時間ブロックされる可能性があります。
命令 fetch-decode-execute ループを別の「ワーカー」スレッドに分割することを考えましたが、ワーカー スレッド (私が理解しているように) は完了するまで非同期で実行することを目的としているため、適切ではないと思います。実行中に親スレッドと対話し続けないでください。(実際、「ワーカー スレッド」が終了しなければならない理由が思いつきません。 ) また、現在、コンソール キーを押した結果として同時に変更できるデータにサイクルがアクセスする必要がある場合、同期は必要ありません。
では、先に進む前にメッセージを明示的に待機する必要がある従来のバッチプロセスと「イベント駆動型」の処理を融合するにはどうすればよいでしょうか?
ruby-on-rails - Rails: イベントがトリガーされるまで応答しない方法
Railsに次のような方法があるかどうかはわかりません:
- 依頼を受ける
- イベントがトリガーされるまで、リクエストを監視リストに入れます
- リクエストを終了しますが、クライアントに応答を返しません (HTTP 応答なし)。トリガーは処理後に応答を行います。
delayed_job に関する情報を見つけましたが、すぐに応答を返し、イベント駆動型とは思えないバックグラウンドにジョブを置きます。
誰でも助けることができますか?
アンディ。
rest - Javaspaces、RESTおよびイベント駆動型アーキテクチャ
Javaspace、REST、およびイベント駆動型アーキテクチャのコンバージェンスについて詳しく知りたいです。すべてのテクノロジーに関する情報を一緒に探すことができる場所を教えてください。
ありがとう^_^
events - パブリッシュ/サブスクライブシステムでイベントを処理するさまざまな方法は何ですか?
各サブスクライバーがいくつかのタイプのイベントを待機するパブリッシュ/サブスクライブシステムでは、単純なスイッチよりも優れた処理ソリューションがありますか?
Pub1とPub2の2つのパブリッシャーがあるとしましょう。Pub1は2種類のイベントPub1-eventAとPub1-eventBを送信します。これは、Pub2と同じPub2-eventAとPub2-eventBです。
一方、Pub1とPub2のイベントをサブスクライブするクライアントSub1があります。
Sub1リスナーでこれらのイベントをどのように処理しますか?
ここにいくつかの可能性:
1つのリスナー、1つの大きなスイッチ(保守が難しい):
1つのリスナーとアソシエーションマップ:
イベントタイプごとに1つのリスナー:
android - onScrollStateChangedを呼び出さないAndroidsmoothScrollTo
smoothScrollBy()の特定の位置にスクロールするために使用していListViewます。ユーザーが指でスクロールしたときに発生するListView現在のイベントと統合するために、スクロールが完了したときに通知を受け取りたいと思います。onScrollStateChanged()
現在Timer、スムーズスクロールの継続時間の100ミリ秒後に実行されるを使用していますが、それは私が望むほどイベント駆動型ではありません。
expression-blend - Expression Blend VSM とイベント ドリブン
私は最近、Expression Blend を使用しましたが、Visual State Manager と呼ばれるものがあることがわかりました。それと通常のイベント ドリブン モデルの違いは何ですか?また、どちらが優れているのでしょうか?
c++ - これは、イベント駆動型プログラミングの競合状態につながりますか?
私はディスクリートシミュレーターで小さなエージェントベースの相互作用シミュレーションを書いていて、次のようなコードを書き始めています。私はこれまでイベント駆動型プログラミングを行ったことがありませんが、この状況を実際に観察していませんでした。次のコードは、の値を更新しているときに競合状態につながるのではないかと思いますmsgRcvd。
私の理解では、両方のイベントが同時に論理的に発生しているため、currentTime() + 5両方のエージェントが同時にメッセージを受信するため、メッセージの数は2になるはずです。または、奇妙な競合状態が発生し、値がスケジューラーに依存しているのがわかりますか(つまり、1または2を出力する可能性があります)?助言がありますか?
javascript - ブラウザ側のnode.jsまたはノンブロッキングjavascript?
私はノンブロッキングアーキテクチャに魅了されています。Node.jsは使用していませんが、概念的には把握しています。また、私はイベント駆動型Webアプリを開発しているので、イベントプログラミングの基本を理解しています。
ブラウザでノンブロッキングJavaScriptをどのように記述しますか?これは、Nodeのやり方とはいくつかの点で異なっているに違いないと思います。たとえば、私のアプリでは、ユーザーが大量のデータをロードできます(JSONにシリアル化されています)。このデータは、アプリケーションの状態を再構成するために解析されます。これは重い操作であり、ブラウザが一時的にロックされる可能性があります。
Webワーカーを使用することは1つの方法だと思います。(これは当然の選択のように見えましたが、NodeはWebワーカーを使用せずに、非ブロッキングのイベント駆動型アーキテクチャを実現しているので、別の方法があるはずです。)タイマーも役割を果たすことができると思います。TameJSとjavascript言語を拡張する他のいくつかのライブラリについて読みました。新しい言語構文を導入せずにネイティブJavaScriptを使用するJavaScriptライブラリに興味があります。
リソース、ライブラリ、および実用的な例へのリンクが最も高く評価されています。
編集:
詳細を学び、私が話していることは「未来」という用語に該当することに気づきました。jQueryはこれを実装しますが、常にXHRを使用してサーバーを呼び出し、サーバーが結果を返す前に処理を実行します。その後、サーバーを呼び出さずに同じことを実行します。クライアントは処理を実行しますが、非ブロッキングです。マナー。
jquery - イベントベースの jQuery プログラミング構造の例はありますか?
私は、典型的な関数呼び出しプログラミング構造の代わりに、jQuery のイベント (bind() および trigger()) を使用する方向にシフトすることでメリットが得られると思われるプログラムを作成しました。たとえば、次の代わりに:
私は書くことができます:
bind() と trigger() を効果的に使用する方法を学んでいますが、ほとんどの場合、作業を進めていくだけです。jQuery を使用して、このイベント駆動型スタイルに従ってコードをプログラミング/構造化する方法の良い例はありますか?
programming-languages - イベントベース==非同期?
「イベントベース」は「非同期」と同じですか?