multiprocessing如何向进程传递对象参数

litsnake 2018-01-31 12:42:58
import multiprocessing as ms
import cx_Oracle as cx

def main():
try:
conn = cx.connect(user+"/"+password+"@"+host+"/"+service)
conn.autocommit = True
p1 = ms.Pool(5)
cur = getUserID(conn)
for r in generate_namedtuple(cur):
p1.apply_async(testPool,(conn,r.userid))
cur.close
p1.close()
p1.join()
conn.close()
except Exception as e:
print ("error")



def testPool(cnn,userid):
print(cnn)

目的测试多进程,传递一个oracle connection 对象,然后在子进程中连数据库计算,但是只要传递conn参数就不执行testPool函数;换一个字符串类型的产生,能执行,貌似这个不能传递对象类型;像我这个应该怎么写才能传递conn对象,谢谢
...全文
1291 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
oyljerry 2018-01-31
  • 打赏
  • 举报
回复
最好不要直接传递对象,需要支持pickle等。一般是传递数据参数等。

37,718

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧