我有一个相当复杂的Python对象,我需要在多个进程之间共享.我使用启动这些过程multiprocessing.Process.当我分享一个对象multiprocessing.Queue,并multiprocessing.Pipe在其中,他们共享就好了.但是当我尝试与其他非多处理模块对象共享一个对象时,似乎Python会分叉这些对象.真的吗?
我尝试使用multiprocessing.Value.但我不确定应该是什么类型的?我的对象类叫做MyClass.但是当我尝试时multiprocess.Value(MyClass, instance),它失败了:
TypeError: this type has no size
知道发生了什么事吗?
我有如下代码:
PyObject *callback;
PyObject *paths;
// Process and convert arguments
if (!PyArg_ParseTuple(args, "OO:schedule", &paths, &callback))
return NULL;
Run Code Online (Sandbox Code Playgroud)
PyArg_ParseTuple内部到底发生了什么?我的猜测是,回调函数获取了我传递给args的函数指针(也是PyObject *)。PyArg_ParseTuple如何将函数指针转换为PyObject *?
我想知道的是,如果我两次传入相同的回调函数指针,将会发生什么。我认为回调在PyArg_ParseTuple内分配了一个新的PyObject,因此每次都会获得不同的内存地址,但是将包含相同的回调函数指针。
但是,如果我使用PyObject_Hash回调,则每次都会产生不同的值,对吗?(由于地址每次都不同。)
os.stat()在Windows上哪些字段填充了虚拟值?
python doc对此不太清楚.特别是,st_inoWindows 上的收益是什么?
有人可以在Windows上运行交互式python会话并让我知道吗?我没有Windows机器所以我不能这样做.