問題タブ [object-sharing]
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.
ruby-on-rails - Sinatra/Rails: アプリの有効期間中にカスタム クラス インスタンスを永続化する
rails/sinatra アプリが 1 回だけ初期化され、すべてのリクエストが同じアプリ インスタンスを共有していると断言できますか? または、新しいリクエストによって新しいアプリ インスタンスが生成されますか?
セッション、データベース ストレージ、またはサード パーティのサービスを使用せずに、カスタム クラスをインスタンス化し、アプリの有効期間中保持することは可能ですか? もしそうなら、スレッドセーフの観点からはどのような意味がありますか?
Web ベースのダウンロード マネージャーを実装する方法を理解しようとしています。現在、Ruby ベースのフレームワークを評価しています。
java - Javaアプリケーション間でオブジェクトを共有する方法は?
一度に2つの別々のJavaアプリケーションを実行しています。(2つの別々のjavaw.exe)実行中にオブジェクトを共有する必要があります。
永続的なストレージがなくてもこれを実現する最も簡単な方法は何ですか?
c# - 別のスレッドから移入されたオブジェクトからのデータの読み取り
言語: c# (wpf)
状況 : ファイルから 3D メッシュを読み込んでから、Viewport3D を作成する必要があります。
やりたいこと: 3D メッシュを BackgroundWorker にロードしたいので、3D メッシュのロード中にアプリケーションが停止する必要はありません。これには数秒かかります。
問題 : 問題は BackgroundWorker の使用方法ではありません。それは十分に文書化されています。この問題は、Viewport3D の Model3DGroup (3D オブジェクト グループ) を設定するときに発生します。
ファイルから 3D メッシュをロードするとき、バックグラウンド ワーカーで、メッシュ内の各オブジェクトのすべてのポイントと三角形のインデックスをカスタム メッシュ クラスに入力します。これらをそれぞれ Point3DCollections と Int32Collections に保存します。
この移入されたオブジェクトが GUI スレッドに戻されると、オブジェクトに保存されているすべての値とプロパティを問題なく読み取ることができます。また、Model3DGroup に入る MeshGeometry3D にコピーした Point3Dcollections と Int32Collections を読み取ることもできますが、バックグラウンドで設定されたオブジェクトのプロパティがバックグラウンド スレッドに属しているため、スレッド所有者の例外が発生します。
バックグラウンドで設定されたオブジェクトからコピーされるプレーンな値ではなく、オブジェクト (Point3DCollection / Int32Collection) を読み取っているという問題はありますか?
スレッド間でデータを共有する場合、使用するすべてのデータのコピーを (他のオブジェクト、つまり MeshGeometry / Modelgroup で) 他のスレッドで作成する必要がありますか? バックグラウンドでオブジェクトを生成し、生成が完了した後、別のスレッドで「単に使用する」ことはできませんか?
iphone - iPhone OBJ-C: MutableArray を共有し、2 つの ViewController 間を移動する
クラス:
- AppDelegate
- AppViewController
- その他のViewController
現在、アプリケーションは AppViewController で開きます。新しいビュー、OtherViewController を追加したいと考えています。ただし、AppViewController のメソッドを、OtherViewController が情報を表示するために使用できる MutableArray に保存する必要があります。
1- AppDelegate のどこに MutableArray を作成すればよいですか? そして、どうすればそれにアクセスできますか?
AppViewController でオブジェクトをスワイプして、OtherViewController をスライドさせる機能が欲しいのですが、OtherViewController の戻るボタンを使用して戻るだけです。
2- どうすればコントローラーを切り替えることができますか?
助けてくれてありがとう!
python - Python:スクリプトの複数の呼び出し間でオブジェクトインスタンスを共有する方法
私は外部プログラムへのPythonインターフェースを提供するライブラリを使用しています。これにより、次のものを作成できます。
上記のコードは、Python内から制御できるFooプログラムの新しいインスタンスを開始します。
複数回呼び出す必要のあるPythonスクリプトがあり、外部パラメーターに応じて、外部Fooプログラムの単一のインスタンスにさまざまなことを実行するように指示します。明らかに私にはできません
foo = Foo()
毎回、
これは、スクリプトが実行されるたびにFooの新しいインスタンスが作成されるためです。
私がやりたいのは、foo= Foo()
一度作成して、複数の呼び出しで同じインスタンスを共有することです。現在、私はそれを一度作成し、シリアル化し、スクリプトに逆シリアル化させることを考えています。このアプローチは機能しますか?より良い代替案はありますか?
ありがとう!!
java - JAX-RSを使用したサーブレットクラスへのオブジェクトの挿入
私はこのサーブレット全体にかなり慣れていないので、間違った/紛らわしい用語を混ぜたり使用したりした場合は訂正してください。ただし、JAX-RS(Jersey)を使用してJavaでブログpingサーバーを作成していますが、REST入力を受け入れるサーブレットクラスと、同じコンテンツを一覧表示する別のサーブレットクラスがあるという問題に直面しています。
現在、次のようなクラスを介してオブジェクトを共有しています。
これは小規模な開発環境では機能しますが、並行性の問題などが原因で、汚れた感じがし、高負荷の本番環境では機能しない可能性があります。また、それはあまり柔軟ではありません。私がやりたいのは、データの読み取りと書き込みのメソッドを持つインターフェイスを用意することです。次に、このインターフェイスを実装するクラスのオブジェクトをこれら2つのサーブレットに挿入して、データとの対話に実際に同じオブジェクトを使用するようにします。これは、同期されたリストやデータベーストランザクションなどによって裏付けられます。
これを行うための好ましい方法は何でしょうか?出来ますか?私のweb.xmlは現在非常に単純で、次のようになっています。
python - プロセス間で pandas DataFrame オブジェクトを共有するには?
この質問には、以前に投稿したリンクと同じポイントがあります。
(メモリのディープ コピーを回避したり、マルチプロセッシングに費やす時間を短縮する良い方法はありますか? )
「DataFrame」オブジェクト共有の問題に直面したので、私はそれでどこにも行きません。
サンプルコードを簡略化しました。
Manager.list、Manager.dict、numpy sharedmem なしでプロセス間で「DataFrame」オブジェクトを共有するように私のコードを修正する専門家がいる場合、私は彼女または彼に非常に感謝します。
これがコードです。
python - タスクレット(コルーチン)の書き込みアクセス権を持つPythonプロセス間でネストされたオブジェクトを共有していますか?
タスクレット (コルーチン) への書き込みアクセス権を持つ Python プロセス間でネストされたオブジェクトを共有するにはどうすればよいですか?
これは、この質問を適切に行うために私が書いたアナロジーを使用した単純化された例です。
まず、次のgreenlet
パッケージをインストールしてください。sudo pip install greenlet
以下の例では:
- 変数
Nature
によって参照されるクラスのインスタンスhabitat
- クラスのこのインスタンスに
Nature
は、というインスタンス変数がありますanimals
- クラスのこのインスタンスの開始中に、
Nature
クラスの 8 つの異なるインスタンスが作成され、インスタンス変数Animal
に追加されました。animals
私が正しければ、このインスタンスNature
はネストされたオブジェクトです。 - 最後のステップとして、
live
インスタンスのインスタンス関数は、パッケージの関数Animal
を使用して 1000 に達するまでランダムに切り替えます。この関数は、インスタンスのインスタンス変数の値をランダムに変更します。greenlet
switch()
global_counter
live
limbs
Animal
greentest.py :
結果は次のとおりです。
期待どおりに動作します。limbs
andの値の変更global_counter
(非ゼロ)
しかしmultiprocessing
、式に追加すると。
greentest2.py :
結果は期待どおりではありません:
limbs
との両方の値global_counter
は変更されません (ゼロ)。Animal
これは、クラスのインスタンスがglobal_counter
プロセス間で共有されていないためだと思います。Nature
では、このクラスのインスタンスまたはこれらのAnimal
クラスのインスタンスをプロセス間で共有するにはどうすればよいでしょうか?
@noxdafox の回答による追加。
greentest3.py :
結果は次のとおりです。
このメソッドは整数global_counter
であるため、このメソッドと共有できることは完全に認識していましたが、実際には、プロセス間でインスタンスとクラスを共有する方法を尋ねています。Nature
Animal