問題タブ [shared-state]
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.
asp.net-mvc - ASP.NET MVC アプリケーションの共有状態とは何ですか?
最近のStackoverflow ポッドキャスト (#59)で、Jeff Atwood は、Stackoverflow には「共有状態」があると述べています。共有状態の一般的な考え方は理解できますが、Stackoverflow などの ASP.NET MVC アプリケーションのコンテキストにおける共有状態とは正確には何ですか?
具体的には、次のことを知りたいです。
- それはどのように見えますか?荒野でどうやって見つけるの?
- それはシステムにどのような制限をもたらしますか?
- どうやってそれを取り除くのですか?
- それがとても悪いのなら、なぜ誰かがそれをデザインに含めるのでしょうか?
distributed-cache - ネイティブ言語でオブジェクトを処理できる共有状態分散システムには、どのようなものがありますか?
私の知る限り、テラコッタとリニアモーターカーがあります。他にもありますか?
concurrency - 「メッセージパッシング/共有状態」のジレンマ (並行性と分散) は「聖戦」の形をとっていますか?
私はどちらのモデルが優れているかについての議論の状況について十分な情報を得ていないので、かなり率直な質問をしたいと思います: 2 つの対立する意見が本当に論争を激化させているように見えますか? たとえば、プロトタイプ/クラス ベースの OOP や動的型付けと静的型付けのようなものです。
(これらは実際にはあまり適切な例ではありませんが、私の質問をより明確に表現する方法がわかりません)
c++ - テンプレートのインスタンス化間で静的メンバーを共有しますか?(無理だよ?)
私はおそらくばかげたことをしているが、それがうまくいったらいいのにと思う。
本質的にグローバルな(ただし、理想的にはクラス変数としてカプセル化された)独自のルックアップ構造が必要な方法で型を特殊化しようとしていますが、オブジェクトを型に対して安全にしたいので、パラメーター化されています。
その結果、私は本質的に
どういうわけか、lookupTableを初期化するときまで、私はそうは思いませんでした。
lookupTable
のさまざまなインスタンス化に関連付けられて、さまざまなが実行されますSpecialArray
。
それは単なる夢のようなものであり、正解はそれを別個のグローバルシングルトンオブジェクトにすることだと思いますが、とにかくlookupTable
、すべてのオブジェクトに対して1つだけになるようにすることはできSpecialArray
ますか?
たとえば、私の頭の中のC ++(実際のC ++ではありません)では、これは次のようになります。
...しかし悲しいことに、GCCは私の心の中でC++をコンパイルしません
私が欲しいものを手に入れる実際の方法はありますか(C ++ 0x-landか何かのどこか)?このルックアップテーブルを操作するいくつかの静的メソッド(タイプまたはNを追跡しない)でも、この問題が発生する可能性があります。
...それが意味をなさなかった場合は申し訳ありません。
あなたがレンダリングすることができるどんな助けまたは同情にも前もって感謝します。
java - Javaのスレッドに変数を共有する方法は?
私のプログラムはスレッドを使用しますが、リンク/ページのコレクション、クエリに関する情報 (更新中かどうか)、その他の情報 (boolean フィールド、int フィールドなど) などのいくつかの変数をスレッドで共有する必要があります。
この場合、すべてのスレッドが同じ作業を処理しますが、コレクションの要素は異なります。
これらの共有データを保持するためだけにクラス/オブジェクトを作成しない方法があるかどうか知りたいです。
私の状況:データベースに処理が必要なページがたくさんあり、一度にすべてを回復することはできません。各スレッドには、ページのリストがデータベースからのリンクで更新されているかどうかを通知するブール フィールドがあります。各スレッドには、処理するページのコレクションがあります。
過去のプログラムで、私は同様の状況にありました。それを解決するために、これらの状態を保持するマスターと、マスターから情報を取得するスレーブを作成します。しかし、今はマスターを使わずにスレーブだけで作業したいのですが、すべてのスレッドに対して変数を 1 つだけ持つ方法があるかどうかを知る必要があります。
例:スレッド 1 がブール値を true に自動的に更新すると、他のすべてのスレッドはこのブール値を true にします。
c# - ASP.NET MVC 3 アプリケーションで共有状態を実装するにはどうすればよいですか?
私は基本的な RESTful サービスを作成しており、このタスクには ASP.NET MVC 3 を使用することにしました。私のアプリケーションは、ユーザーごとにサーバーへの永続的な接続を維持する責任があります (今のところ)。静的/共有状態 (永続的な接続など) を登録する場所であると想定していましたがApplication_Start
、Unity.MVC3 のドキュメントを読んだ後、各要求/応答サイクルが (Application_Start を呼び出して) サービスの作成をトリガーするようです。
私が参照するドキュメントには次のように書かれています:
リクエストごとに、1 つの UpperCaseService、1 つの LowerCaseService、および 1 つの ExampleContext が、Unity を介して DependencyResolver によってインスタンス化されます。リクエストの最後に、ExampleContext は自動的に破棄されます
他のドキュメントを読んだ後、および私がすでに想定していたことから、Application_Start は、生成された AppDomain ごとに呼び出されます (これは、サーバー上にあるコアの数に近いと想定されます)。
では、サーバーへの一連の永続的な接続を維持し、要求/応答フェーズを生き延び、可能であれば、IIS サーバーが作成したすべての AppDomain 間で共有する効果的な方法は何でしょうか?
この Web サービスは、別の Web サイトによってのみ使用されることに言及しておくと役立つかもしれません。これは本質的には認証プロキシ サーバーですが、将来的にはさらに多くのことを行う予定です。したがって、将来のリクエストが必要になり、再認証はオプションではないため、レスポンスをキャッシュすることはできません。
c++ - 同じ変数を使用する 2 つのスレッド
「main」と「worker」の 2 つのスレッドと、while ループを終了するときにスレッドが通知bool isQuitRequested
するために使用される 1 つのグローバル変数があります (次のようなもの: ) 。main
worker
while(isQuitRequested == false) { ... do some stuff ... }
さて、私は少し心配しています... 1 つのスレッド ( ) だけが操作を実行し、もう 1 つのスレッド ( )はチェックのみを実行し、それ以外は何も実行しないことisQuitRequested
を考えると、何らかのミューテックス保護を に使用する必要がありますか?main
isQuitRequested = true
worker
2 つのスレッドが同じ bool 変数に同時にアクセスするとどうなるかを読みました。. 似たようなことはありますが、同じ状況ではありません...
haskell - 可変共有状態: いつ IORef を使用するか
Map と PSQ に書き込むメイン スレッドがあります。Map と PSQ の両方で同じキーを使用するので、PSQ を見ることで最小優先度のエントリが O(1) の複雑さで見つかり、Map の値にマップされます。
ここで、メイン スレッドが必要に応じてマップと PSQ の両方を追加/変更する一方で、常に ( forever $ do
) PSQ を調べて、最も古いキーが N ミリ秒前であることを判断し、それをフラッシュすることになっている 2 つ目のスレッドがあります。
これを行うには、両方のスレッドが同じ変更可能なデータを参照する必要があります。ここで状態を維持するための最良の方法は何ですか? これは IOREfs のケースでしょうか? これを解決するために他にどのような方法が考えられるでしょうか?
ここに「いくつかの」プレアルファコード:
haskell - 単純な IORef を使用した Haskell の同時実行性?
私は Haskell の同時実行性、特に についていくつか質問してTVar
きましたが、TVar
.
代わりに、私はこの解決策を提案しました。
(1) プログラム内のすべての共有データを 1 つのデータ構造にラップし、それをIORef
. (2) を使用して変更を行うだけですatomicModifyIORef
。
これにより、デッドロックとライブロックの両方が防止されると思います (一方、TVar は前者のみを防止します)。また、atomicModifyIORef
別のサンクをチェーンにリンクするだけなので (これは 2 つのポインター操作です)、これはボトルネックではありません。データに対する実際の操作はすべて、相互に依存しない限り、並行して実行できます。Haskell ランタイム システムがこれを解決します。
ただ、これは単純すぎる気がします。私が見逃した「落とし穴」はありますか?
php - あるコントローラーメソッドから別のコントローラーメソッドに変数を渡す
私はCodeIgniterフレームワークを使用しています。<div>
AJAX経由で他のビューをロードするいくつかのタブを含むメインビューをロードします。私のコントローラークラスは次のようになります。
}
を呼び出してメインページを読み込みますmywebapp/main/123
。は、メソッドおよびでid
使用できます。しかし、タブをクリックすると、でも使用したいと思います。これを行うための最良の方法は何ですか?たぶん、コントローラーのすべてのメソッドに対してこの変数をグローバルにする方法はありますか?main
main_view
id
<div>
main_view
jQueryを使用してタブをロードします。