我一次运行2个单独的Java应用程序.(两个单独的javaw.exe)我需要在它们运行时共享它们之间的对象.
没有永久存储的最简单方法是什么?
我使用的库为外部程序提供python接口.这允许我创建:
foo = Foo()
Run Code Online (Sandbox Code Playgroud)
上面的代码启动了我可以在python中控制的Foo程序的新实例.
我有一个python脚本,需要多次调用,并根据外部参数,告诉外部Foo程序的单个实例做不同的事情.显然我做不到
foo = Foo()
每次,
因为每次我的脚本运行时都会创建一个新的Foo实例.
我想要做的是创建foo= Foo()
一次,并让多个调用共享同一个实例.目前我只想创建一次,序列化它,并让我的脚本反序列化它.这种方法有效吗?还有更好的选择吗?
谢谢!!
这个问题与我之前发布的链接具有相同的意义.
由于我遇到了'DataFrame'对象共享问题,我无处可去.
我简化了示例代码.
如果有任何专业人士修改我的代码以在没有Manager.list,Manager.dict,numpy sharedmem的进程之间共享'DataFrame'对象,我将非常感谢她或他.
这是代码.
#-*- coding: UTF-8 -*-'
import pandas as pd
import numpy as np
from multiprocessing import *
import multiprocessing.sharedctypes as sharedctypes
import ctypes
def add_new_derived_column(shared_df_obj):
shared_df_obj.value['new_column']=shared_df_obj.value['A']+shared_df_obj.value['B'] / 2
print shared_df_obj.value.head()
'''
"new_column" Generated!!!
A B new_column
0 -0.545815 -0.179209 -0.635419
1 0.654273 -2.015285 -0.353370
2 0.865932 -0.943028 0.394418
3 -0.850136 0.464778 -0.617747
4 -1.077967 -1.127802 -1.641868
'''
if __name__ == "__main__":
dataframe = pd.DataFrame(np.random.randn(100000, 2), columns=['A', 'B'])
# to shared DataFrame object, …
Run Code Online (Sandbox Code Playgroud)