問題タブ [message-passing]
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.
javascript - BGページから渡されたメッセージに従ってコンテンツスクリプトに変数を設定する - クロム拡張
コンテンツ スクリプトからリクエストを送信し、バックグラウンド ページから正常に応答を受け取りました。ここで、応答に基づいて、コンテンツ スクリプトに変数を設定したいと考えています。困っているところです。十分に単純なはずです....構文が間違っているに違いないと思います。私のコンテンツスクリプトの内容は次のとおりです。
コンソールはgoaway
応答として表示されますが、wasPoite
未定義のままです。
java - 親スレッドと通信できる新しいスレッドでタスクをディスパッチする
新しいスレッドにタスクをディスパッチしたいのですが、このタスクが実行のさまざまな段階で親スレッドに通知するようにしたいのです。以下に示すようなもの:
このユースケースの標準ライブラリのみのソリューションは何でしょうか?(外部依存関係にしたい。)
haskell - HaskellZeroMQバインディングがREQソケットで機能しない
だからここで私は、libzmqをWindowsデスクトップにインストールしてから、zeromq-haskellとcabalをインストールすることがほとんどできませんでした。hello-worldタイプのアプリケーションでPythonプログラムをhaskellプログラムにバインドしてAPIをテストしたかったのです。
したがって、私が見る最も基本的なパターンは、要求と応答のパターンです。最初に、サーバーをhaskell(REP)で、クライアントをpython(REQ)で作成しようとしましたが、何をしてもwitchは惨めに失敗しました。生成された例外メッセージは、例外:受信:失敗(エラーなし)でした。
したがって、System.ZMQおよびSystem.ZMQ.Baseソースコードの内部を見ると、receiveがc_zmq_recvの呼び出しでエラーをスローし、witchがC apiへのffi(?)呼び出しに直接マップしていることがわかります。だから私はおそらくインストールを適切に行わなかったと思いますが、Haskellでクライアントを作成し、Pythonでサーバーを作成しようとすると、問題なく動作することに気付きます。したがって、おそらくここではrecvインターフェイスは問題ではありません。
以下は、クライアント機能とサーバー機能の両方を備えたhaskellコードです。
今、私は実際に他のすべての通信モード(プッシュ/プル、サブスクライブ/公開、ペアリングなど)をテストすることはできませんでした。必要なものについては、Pythonサーバー/ Haskellクライアントの方がおそらく優れていますが、天気に興味があります。 m何か間違ったことをしている場合、またはコードの一部が何らかの形で壊れている場合。
前もって感謝します
objective-c - 委任とメッセージ パッシング
私はクラスを持っています。それA
を呼び出して、NSDictionary
. そのクラスにはテーブルビューがあり、セルが選択されると、新しいクラスがインスタンス化されます。そのクラスを呼び出しましょうB
。クラスはクラスB
をインスタンス化しますC
。で作成した をクラスC
に受け取りたい。NSDictionary
A
代議員は機能しますか?クラスC
がインスタンス化されていなくても機能しますか? それが本当で、実際にそうでない場合、メソッドでA
--> B
-->からデータを渡す必要がありますか? Objective-C でより良いメッセージ パッシング メソッドはありますか?C
init
c++ - MPIのオーバーサブスクライブはシステムをクラッシュさせる可能性がありますか?
プロデューサーとコンシューマーを使用してサンプルMPIアプリケーションを実装しました。プロデューサーはランク0のプロセスで実行され、コンシューマーはゼロ以外のすべてのランクで実行されます。コンシューマーは、プロデューサーによって生成されたメッセージを処理するためにコンシューマーワーカースレッドを生成します。コンシューマースレッドは、レシーバースレッドとワーカースレッドに分割されます。
コンシューマーレシーバースレッドはrecvを実行し、受信時にコンシューマーワーカーによって消費されるメッセージを渡します。コンシューマーワーカーは、計算を実行した後、処理されたメッセージをProducer(root)に送り返します。
このコードをデュアルコアマシンで実行しています。私が気付いているのは、を使用してアプリケーションを実行するとmpirun -np 2
、プロデューサーによって生成された任意の数のメッセージに対してアプリケーションが正常に実行されていることです。を使用してアプリケーションを実行しようとするとmpirun -np 4
、2、3回の実行を処理した後、アプリケーションがクラッシュします。
誰かが以前にこの問題に遭遇したことがありますか?なぜこれが起こっているのかについての洞察を得るのは素晴らしいことです。
編集:アプリケーションを実行するたびに発生する例外は次のとおりです。
ありがとう
scheme - メッセージ パッシング スキーム
メッセージパッシングがスキームでどのように実装されているかを簡単に説明してもらえますか? メッセージパッシングの全体的な概念については、私は少しずれていると思います。
java - Java 共有アドレス空間とメッセージ パッシング並列プログラミング パラダイム
共有アドレス空間モデルでは、プロセス間で共有され、メモリ内のデータ構造として表される共通のアドレス空間があります ( などConcurrentHashMap
)。これにより、共有オブジェクトが単一のコンピューター上にあるため、データ共有が非常に高速になるという利点が得られます (簡単にするために、そうすると仮定します)。プロセスが衝突する可能性があるため、さまざまなロック メカニズム (ミューテックス) が、共有メモリへのアクセスにおける相互排除を保証するのに役立ちます。プロセッサ数が増えると共有メモリのトラフィックが幾何学的に増加する可能性があり、1 台のコンピュータに 8 個以上のプロセッサを搭載できないため、このスキームにはスケーラビリティがありません。
メッセージ パッシングモデルでは、グローバル アドレス空間の意味はありません。各プロセスには、1 つのプライベート ローカル メモリがあります。プロセスは、メッセージを渡すことで相互に通信できます。共有アドレス空間とは異なり、メッセージ パッシング モデルはプロセッサとメモリ間のスケーラビリティを提供しますが、共通データを複製する必要があります。プロセッサが増えると、(そのデータの) メモリ サイズも比例して増加しますが、この場合はロック メカニズムは必要ありません。
インスピレーションを得るために「Thinking in Java」を読むと、同期の原則を備えた共有アドレス空間モデルについての話しか見つかりません。私の問題が複雑になるにつれて、私は盲目ではない限り、この本には記載されていないメッセージ パッシング パラダイムを試すつもりです。
C++ の MPI のようなメッセージ パッシング モデルで動作する Java ネイティブ クラスまたは実績のある外部ライブラリを推奨していただけますか? そのソースへのリンクは大歓迎です!