小小不离鞘 2021-01-14 11:42 采纳率: 100%
浏览 305
已采纳

python 创建多进程时 args参数传递self.xxxx报错

问题图片

process = multiprocessing.Process(target=self.sever_client, args=(client, recv_data, addr))   
是我原来的代码,运行时创建多进程也没有问题

logger

self.logger是我在__init__中创建的一个类属性

 

self.sever_client(client, recv_data, addr, self.logger)

是我改了代码之后,运行多进程会报错,但是直接运行这个函数,代码运行正常没有问题

 

process = multiprocessing.Process(target=self.sever_client, args=(client, recv_data, addr, self.logger))  
就是我改了代码之后,创建这个函数的多进程,但是会报错

报错信息

个人觉得问题出现在self.logger  是因为创建多进程时  将self.logger传入导致的问题

请各位大佬指教(抱拳)

  • 写回答

1条回答 默认 最新

  • 皛心 2021-01-15 18:17
    关注

    我没看到你的全部代码,不过可以估计得出报错的原因。

    请记住多进程之间数据隔离,我想可能是你没注意到数据隔离的原因,访问了访问不到的属性。

    另外多任务编程,记住IO多计算少应该用多线程编程,计算多IO少才用多进程编程。

    可以关注我,看看我近期写的python编程之操作系统知识点梳理。

    我觉得你需要好好梳理一下多进程、多线程、协程编程的相关概念。然后再尝试自己改代码。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 2020长安杯与连接网探
  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
  • ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
  • ¥16 mybatis的代理对象无法通过@Autowired装填
  • ¥15 可见光定位matlab仿真
  • ¥15 arduino 四自由度机械臂
  • ¥15 wordpress 产品图片 GIF 没法显示
  • ¥15 求三国群英传pl国战时间的修改方法
  • ¥15 matlab代码代写,需写出详细代码,代价私
  • ¥15 ROS系统搭建请教(跨境电商用途)