TypeError: cannot serialize '_io.BufferedReader' object 问题记录

在进行多进程自动化测试代码编写时,出现了cannot serialize _io.BufferedReader object错误,是将一个不可序列化的对象传递给对象从而导致的问题。对于多进程的程序而言,每一个进程都有自己独占的内存空间,他们之间是相互独立的。

先看一段我自己写的代码:

m=mmsdb()
conn=m.connect()
cursor=conn.cursor()
security_tuple_all=m.getAll_securityList(cursor)
total=m.getSUM_securityList(cursor)
temp=round(total/p_num)
p_list=[]
for i in range(p_num): #进程之间是不能通信的,即不能有公共对象
begin =0
end =0
if(i!=p_num-1):
begin=tempi
if(begin==0):
begin=0
end=temp
(i+1)
if(end==p_num-1):
end=total
print(begin,end)
security_tuple=security_tuple_all[begin:end]
p=multiprocessing.Process(target=writerTable, args=(m,conn,cursor,security_tuple,interfacename_dict,))
p.start()
p_list.append§ #将进程放入list中

红色标记的m,conn,cursor是公共对象,第一个进程可以正常运行,第二个进程启动后就会报TypeError: cannot serialize ‘_io.BufferedReader’ object
就是因为m,conn,cursor已经被第一个进程占用,第二个进程已不能再进行序列化了,故而报这个错。
python多进程之间是不可以通信的。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

哈希哥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值