問題タブ [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.
concurrency - MailboxProcessorタイプはロックの代わりになりますか?
私はF#がテーブルにもたらすすべての機能をゆっくりと調べてきました。私の興味を特に惹きつけたのはMailboxProcessor
です。
- C#でこれに相当するものは、おそらくロックを使用します。
MailboxProcessor
ロックの代わりと見なすことができますか? - 次の例では、私は特に素朴なことをしていますか、それとも改善される可能性のある何かを見ることができますか?
javascript - PHP/Javascriptがメッセージを別のページに渡す
だから私に説明させてください:
基本的には、コメントを投稿すると(js / jqueryスクリプトを使用して文字列をinsert.phpに送信し、データベースに挿入します)、2ポイント以上を受け取ります。+2ポイントを獲得できるようになりましたが、stackoverflowのようなメッセージを表示したいと思います。私はすでにstackoverflowのようなメッセージを表示する方法を知っていますが、どういうわけか私はinsert.phpから送信する必要があります(あなたが挿入した後)、これ:
index.phpに。
#messageを見つけて#box(index.phpでは "box"と呼ばれるdiv)にスローするように、現在のスクリプト(insert.phpに文字列を送信している)にコーディングすることを考えていました。
しかし、私はこれをどのように行うべきですか?必要に応じて、insert.phpを通過した後、javascriptで次の関数をアクティブにします。
そして私が言ったように、あなたは次のようにしてスクリプトをアクティブにします:
データベースに正常に挿入し、ユーザーにポイントを与えた後ですか?私はこれをテストしたばかりですが、動作させることができません。私のサイトはphpBBログイン(私が持っているphpBBフォーラム)からのセッションと統合されているので、$_SESSIONを使用できないと思います。そして、insert.phpはフレームで開かれます。私の問題は、アクションと確認の表示が異なるページで行われることです。
c++ - シンプルで軽量なメッセージパッシングを行うためにどのライブラリを使用できますか?
分散ノード間の通信が必要なプロジェクトを開始します(プロジェクトはC ++です)。ノード間で非常に単純なメッセージ(基本的にはテキストの文字列のみ)を渡すための軽量のメッセージパッシングライブラリが必要です。ライブラリには、次の特性が必要です。
外部設定は必要ありません。コードですべてを稼働させる必要があります-ユーザーにパッケージのインストールや構成ファイル(接続するIPアドレスとポートのリスト以外)の編集を要求したくありません。
ライブラリが使用する基盤となるプロトコルはTCPである必要があります(または、UDPの場合、ライブラリはメッセージの最終的な受信を保証する必要があります)。
ライブラリは、任意の大きな文字列(最大3GB以上と考えてください)を送受信できる必要があります。
ライブラリは、セキュリティメカニズム、フォールトトレランス、または暗号化をサポートする必要はありません。高速で、シンプルで、使いやすいものである必要があります。MPIを検討しましたが、プロジェクトではユーザーのマシンでのセットアップが多すぎると結論付けました。
そのようなプロジェクトにはどのライブラリをお勧めしますか?私は自分で転がしますが、時間の制約のため、それは実現可能ではないと思います。
concurrency - 「メッセージパッシング/共有状態」のジレンマ (並行性と分散) は「聖戦」の形をとっていますか?
私はどちらのモデルが優れているかについての議論の状況について十分な情報を得ていないので、かなり率直な質問をしたいと思います: 2 つの対立する意見が本当に論争を激化させているように見えますか? たとえば、プロトタイプ/クラス ベースの OOP や動的型付けと静的型付けのようなものです。
(これらは実際にはあまり適切な例ではありませんが、私の質問をより明確に表現する方法がわかりません)
performance - 単一のアドレス空間を偽造する
私には、SMPと非常によく並列化する大規模な科学計算タスクがありますが、レベルが細かすぎるため、明示的なメッセージパッシングを介して簡単に並列化できません。アドレス空間と物理マシン間で並列化したいと思います。次の条件下で、複数の物理コンピューター間ですでにマルチスレッド化されたコードを並列化するスケジューラーを作成することは可能ですか?
- コードはすでにマルチスレッド化されており、SMP構成でかなり適切に拡張できます。
- すべてのスレッドが同じアドレス空間または同じ物理マシンで実行されているわけではないという事実は、一部のユースケースでパフォーマンスが大幅に低下したとしても、プログラムに対して透過的である必要があります。
- 関連するすべての物理マシンが、バイナリ互換のオペレーティングシステムとCPUアーキテクチャを実行していると想定する場合があります。
- ロックや不可分操作のようなものは遅いかもしれませんが(処理するためのネットワーク遅延があります)、「正しく機能する」必要があります。
編集:
- レイテンシーではなく、スループットのみを気にします。
- 私はDプログラミング言語を使用していますが、定型的な解決策はないとほぼ確信しています。私は、特定の缶詰のソリューションよりも、これが原則として実行可能かどうかに関心があります。
android - アクティビティ内でデータを渡す際の問題
私は何を間違っていますか?
python - Parallelism in Python
What are the options for achieving parallelism in Python? I want to perform a bunch of CPU bound calculations over some very large rasters, and would like to parallelise them. Coming from a C background, I am familiar with three approaches to parallelism:
- Message passing processes, possibly distributed across a cluster, e.g. MPI.
- Explicit shared memory parallelism, either using pthreads or fork(), pipe(), et. al
- Implicit shared memory parallelism, using OpenMP.
Deciding on an approach to use is an exercise in trade-offs.
In Python, what approaches are available and what are their characteristics? Is there a clusterable MPI clone? What are the preferred ways of achieving shared memory parallelism? I have heard reference to problems with the GIL, as well as references to tasklets.
In short, what do I need to know about the different parallelization strategies in Python before choosing between them?
c# - アクターにメッセージを渡すときに「オブジェクト参照」の問題を回避するにはどうすればよいですか?
しばらく前に、アクターモデルActor
の実装であるという名前の単純なクラスをまとめました。それ以来、私はそれを大成功で使用してきました(識別された共用体タイプがないためのいくつかの厄介な回避策を除いて)。クラスを不格好で遅くせずに解決する方法がわからないという問題が残っています。
誰かがメッセージを定義するとき、彼らはもちろん、呼び出し元自身が操作できるオブジェクトへの参照を含める権利の範囲内にあります。このクラスを使用するのは私だけだという知識があっても、これはまだ私を悩ませます。
これを回避する良い例は、Firefoxに実装されているWebワーカーを使用することです。オブジェクトをワーカーに渡すと、JSONにシリアル化されます。
何か案は?
objective-c - 複数の ObjC クラスに同じメッセージを渡す
複数のクラスがあり、そのすべてに同じメッセージを送信したいと考えています。より明確にするために:
同じパラメーターを指定して doX:withClass: を複数のクラスに送信したいと考えています。おそらくコードはそれをより明確にするでしょう:
特定のプロトコルを実装するクラスで同様のことを行う 3 つのメソッドがあります (doX:withClass: メソッドは、指定されたクラスがそのようなプロトコルを実装していると仮定して、いくつかの手順を実行します)。
私の質問は、どうすればよりプログラム的にクラスをループできるので、リストに追加するだけで (コード内 - 実行時に追加できることに興味がない)、ループに追加できますか?
java - JVM でのゼロコピー メッセージ パッシング
アクター メッセージ パッシング セマンティクスの忠実な実装は、不変型であっても、論理的な観点からメッセージ コンテンツがディープ コピーされることを意味します。アクター モデルの単純な実装では、メッセージ コンテンツのディープ コピーが依然として最大のボトルネックであるため、一部の実装 (例: Kilim) はゼロコピー メッセージ パッシングをサポートしています。
私の質問は、JVM のような共有メモリ プラットフォームでゼロコピー メッセージ パッシング ( Actor ライブラリ/フレームワークの一部として) をどのように実装するかです。不変のコンテンツを持つメッセージに対してのみ機能し、メッセージ参照の可視性は何らかの方法で制限する必要があると思います。しかし、Actor モデルの実装の背後にある「理論」を見つけるのに苦労しています。