zoukankan      html  css  js  c++  java
  • 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=temp*i
    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(p) #将进程放入list中

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

  • 相关阅读:
    多网卡绑定
    deepin 20.2.3 数字时钟屏保
    (原创)odoo15(master)下,列表导出权限控制
    在CentOS7上扩容centos-root根目录
    Linux扩容-新增磁盘分区挂载-fdisk
    Docker
    隐私政策(URL)
    快排代码
    反射将对象所有属性(含集合中所有属性)中字符串类型做trim()
    Prometheus 查询语句
  • 原文地址:https://www.cnblogs.com/shuyichao/p/10406878.html
Copyright © 2011-2022 走看看