問題タブ [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.
linux - イベント駆動型と非同期の違いは何ですか?epollとAIOの間?
イベント駆動型と非同期は、多くの場合、同義語として使用されます。2つの間に違いはありますか?
epoll
また、との違いは何aio
ですか?それらはどのように組み合わされますか?
最後に、LinuxのAIOがひどく壊れていることを何度も読みました。それはどのくらい正確に壊れていますか?
ありがとう。
javascript - Javascriptの非同期性の背後にあるもの-イベント駆動型システム
私がこれを理解するのを手伝ってください。
いくつかのメソッドを呼び出す関数があります。
コールバックや無名関数を持たない言語から、メソッドが戻るまで実行が続行されないという事実に慣れました。
そのため、コールバックを使用してmethodAを呼び出した場合、実行はメソッドが返されるまで待機する必要がありますが、これは非同期ではありませんよね?
たとえば、あるオブジェクトへのコールバックを保存して、methodAを返すことができるようにします。次に、methodBとmethodCが実行されます。そして、ユーザーがボタンをクリックすると、一部のハンドラーがコールバックを実行しますか?
私は、javaまたはpythonと比較してjavascriptについて非同期ではないという結論に達しました(マルチスレッドに関してではありません)... javaでは、コールバックはクロージャ/匿名メソッドではなく、「execute」メソッドを持つオブジェクトであるためです。まったく同じですが、もう少し複雑です...もちろん、DOMに固有のこのJSイベントシステムがあります
c - Cに単純な/例のイベント駆動型Webサーバーはありますか?
オンラインにはスレッドベースのWebサーバーの例がたくさんありますが、イベントループベースのWebサーバーの良い例を示すものは実際には見たことがありません(lighttpやnginxなどの非常に複雑なものではありません)。
いずれかがあります?そうでない場合、この種のサーバーを作成する方法を学ぶために、何を読んだり見たりする必要がありますか?(これには、Cでの非同期IOなどが含まれます)
特にPythonのような高級言語で、イベントループベースのプログラミングがどのように機能するかの基本をすでに理解していますが、Cで実装できる必要があります。
ruby-on-rails - 非同期性、スレッド化、node.js、Ruby on Rails
別のスクリプト言語を使用することは別として、node.jsの主な魅力は、イベント駆動型プログラミングのサポートであるように思われます。これにより、単純化された非I/O呼び出しをブロックします。ただし、この機能には、コールバック関数の後にコールバックを渡す必要がある新しいプログラミングモデルを学習する必要があるという犠牲が伴います。これにより、いくつかの単純なタスク(たとえば、依存するアクションのシーケンス)が少し複雑になります。
そのプログラミングモデルを、すべてのI / O操作をブロックし(事実上)シングルスレッド(MRIのグリーンスレッド実装のため)であるRubyonRailsの従来のモデルと比較してください。
ここで大声で夢を見ているだけで、I / O呼び出しをトラップし、非ブロッキングバージョンに透過的に置き換え、現在の継続を保存して呼び出すことで、これらのモデルを調整するRuby(またはRails)ランタイムを実装できるはずです。 I/O操作が完了したとき。このようにして、使い慣れた手続き型プログラミングスタイルと、イベント駆動型/非同期/コールバックモデルの利点を得ることができます。
そのようなランタイム(またはランタイムトランスレータ)は技術的に可能ですか?すでにこのようなことをするWebフレームワークはありますか?
javascript - イベント駆動型モデルで「うまくいくまで試し続ける」方法は?
次のようなコードを書いています。
基本的には、コールバックが青信号を受け取るまで「doStuffWithCallback」を試行し続けます。通常、これはループで実行されますが、成功に到達しないイベントで無限再帰を引き起こすことなく、イベント駆動型モデルでこれを行うにはどうすればよいでしょうか? (success
外部サーバーなどに依存している可能性があるため、それらがダウンしている場合、常にfalseになります)。
コードの構造はあまり変更できません。使用している API のために、コールバックを使用して目的を達成する必要があります。
c++ - コンソールベースの C++ IRC クライアントの作成
私は C++ を学んでいるので、IRC クライアントのコーディングを始めることにしました。
私は基本的にコンソールベースにしたいと思っており、ncurses などのライブラリを調べましたが、これが最善のアプローチであるかどうかはよくわかりません。
UI は、書かれたメッセージが表示される 1 つの部分と、ユーザーの入力が行われる 1 つの部分に分割されていると想像します。Ncurses はこれを実行できるように見えましたが、別の問題を発見しました。
メッセージ部分をイベント ドリブンにしたいので (誰かがメッセージを送信するたびに、これがメッセージ部分に表示される必要があります)、UI のメッセージ部分は入力部分とは独立して実行する必要があります。また、ソケットもノンブロッキングである必要があります。
私はインターネットを見回しましたが、これに関する良いチュートリアルは見つかりませんでした.
とにかく、私の質問は、ncurses とソケット ライブラリを使用してこれを行うにはどうすればよいかということです。それらの優れた C++ ラッパーはありますか (ncurses チュートリアルを読んで学んだことの 1 つは、OOP が本当に素晴らしいということです...)?
javascript - node.jsはWeb開発コンテキストのどこに適合しますか?
node.jsは、V8Javascriptエンジンでホストされる「イベント駆動型I/O」サーバー側javascriptであると言われていることを私は知っています。node.jsのWebサイトにアクセスし、ウィキペディアのエントリを読みましたが、それをどこで使用し、どのように役立つかを完全に理解することはできません。「イベント駆動型IO」?「V8Javascriptエンジン」?ただし、状況によっては、「サーバー側」のJavaScriptを少しやり過ぎだと思います。たとえば、node.jsのウィキペディアエントリにあるこのコードを取り上げます。
私は考えていましたが、アプリケーションのフロントエンド部分で実行されるjavascriptファイルを特に提供するサーバーを実行することには本当に重要な目的がありますか?
また、githubでnode.jsリポジトリをフォークして、その動作について詳しく学びました。そのモジュールの一部はC++で記述されていることがわかりました。それで、それは結局のところjavascriptではありませんか?
誰かが私にこれらすべてについて明確な説明をすることができますか?質問が明確でない場合は申し訳ありませんが、私は初心者です。入力/提案をいただければ幸いです。ありがとう
c# - C# イベント ドリブン ステート マシンは、Windows.Forms.Timer を使用してイベント レイザーを解放する必要があります。
従来の VB6 コードでは、システム タイマーを使用してコールバックを実行し、イベント ハンドラーをブロックすることなくステート マシンを実行できるようにしました。疑似コードの例
ステート マシンで何らかの呼び出しが行われ、後でイベント ハンドラーが起動され、コールバックを実行するタイマーがセットアップされ、イベント ハンドラー コードが次のコードに進む前に完了できるようになることを理解していただければ幸いです。州。
私は C# で同様の傾向を続けていますが、言語がこれを行うためのよりかわいい方法を提供すると確信しているため、それは間違っていると感じています。私の C# ステート マシンはまだ UI スレッドでイベントを発生させる VB6 オブジェクトを呼び出しているため、イベント ハンドラーを「フック解除」して、ステート マシンが途中で続行する前にイベント ハンドラーを解放するより良い方法はありますか?
BeginInvoke を使用してポンプにメッセージを追加してステート マシンを実行できると考えましたが、スレッド プール スレッドではなく同じスレッドで実行できますが、私のクラスはフォームまたはコントロールではありません。タイマーを使用しないソリューションを思いつくことができると思いますが、タイマーは非常に簡単に使用できるので、どんなアイデアでも素晴らしいでしょう.
python - pygameでサーフェスを画面にブライトするための正しい順序は何ですか?
私は単純な mp3 プレーヤーを作成しています。最初のタスクは、ユーザーが押すことができる単純なボタンを作成することでした。この動作を処理し、ユーザーがクリックしてから色が変わるかどうかを検出する Button というクラスを作成しました。ボタンが表示されるデフォルトのテキストと、ボタンが押された場合に表示される別の文字列(pres_string)を作成しようとしています。
唯一の問題は、背景サーフェスが間違った場所にあるように見え、行った変更を上書きしていることです。
これが私のコードです:
ご覧のとおり、説明した行をコメントアウトし、何が問題なのかをテストするために、メイン関数の基本変数で試しました。
助けてくれてありがとう。
(質問のタイトルを自由に変更してください。私の問題を最も正確に説明しているものはわかりませんでした)
scala - Scala では、イベント駆動型プログラミングと関数型アプローチをどのように組み合わせることができますか?
イベント駆動型の意味を明確にするために、私が持っている状況を指しています
特定の株が取引されるたびに呼び出されます。毎日の最高取引価格を追跡したいとします。私にとって明らかな解決策は次のとおりです。
var の代わりに val を使用してこの機能を実現する方法はありますか? また、将来、dailyLow、volumeHigh、volumeLow などを追加する可能性があると仮定します。