python-3.x - 使用多处理 python 包发送包含指针的复杂对象
问题描述
我正在尝试解决一个与 python3 多处理包相关的问题。我想在更多进程之间共享复杂对象(即 Z3 SMT 求解器实例)。目前,我尝试了multiprocessing.Queue
,multiprocessing.Pipe
等multiprocessing.Manager
。我总是遇到同样的问题:
ValueError: ctypes objects containing pointers cannot be pickled
.
这意味着我的 Z3 实例具有包含引用(地址)的属性,在这种情况下,我无法将其发送到另一个进程,因为该地址与另一个进程不同(进程有自己的地址空间)。因此,我尝试取消引用每个属性,但最终以另一个失败告终,其中 z3 SMT 求解器实例的属性没有正确的 ctypes。所以我的问题是。有没有一些好方法可以使用多处理包发送复杂的对象?
解决方案
推荐阅读
- c# - Asp.Net MVC - SecurityException:找不到源,但无法搜索部分或全部事件日志。无法访问的日志:安全性
- c# - 如何根据给定的值自动缩放 Unity 对象。?
- windows - Windows 用户空间 TCP/IP 堆栈 - 如何抑制指定以太网接口的内核堆栈?
- django - 在 Django 项目中设置 Reactjs
- java - 如何使 TestRestTemplate 忽略重定向
- javascript - 如何使用时刻 js 获得 24 小时时间
- python-3.x - mpi4py 收不到消息
- c# - '=' 附近的语法不正确。在 System.Data.SqlClient.SqlConnection.OnError(SqlException 异常
- android - 无法映射视图组子项
- android - 如何获取我使用下载管理器下载的文件的 URI?