やりたいこと
別プロセスで起動しているオブジェクトの取得
重たいファイルなどを先にメモリ上に展開しておいて、別プロセスからはその情報を使うだけにしたい。
###イメージ
class C(object): def foo(self): pass obj=C() while True:pass #このプロセスが生き続けるためのループ
別プロセスから上記でメモリ上にあるobj変数を取得したい。
試したこと
同じプロセスならばガベージコレクションの対象オブジェクトからオブジェクトID(名)から取得可能だった。
import gc class C(object): def foo(self): pass def objects_by_id(id_): for obj in gc.get_objects(): if obj == id_: return obj raise Exception("No found") if __name__=='__main__': i=C() print(i) print(objects_by_id(i))
###考えたこと
プロセス間のソケット通信を行う。ただ、オブジェクトをそのまま送れないためシリアライズ化しなくてはいけない。一度、展開したものをシリアライズしてもあまり意味がないと考えた。
環境
windows
python3
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。