10

2019-06-16 15:39:41 +08:00

@NoAnyLove 好的好的,我查了下,说 IPC 或向 worker 参数传递的东西必须要能 pickle,不然就报错,那就是 select.epoll 是不支持的。error:TypeError: can't pickle select.epoll objects。

代码大致如下:

def listenProcess(serverSocket):

process_num = 2*cpu_count()

# 设置进程池、消息队列

po = Pool(process_num)

q = Manager().Queue() #ipc 方法 1

m=Manager() # ipc 方法 2

epoll_fd = select.epoll()

epoll_fd.register(serverSocket.fileno(), select.EPOLLIN)

# 保存中间数据

connections = {}

addresses = {}

while True:

epoll_list = epoll_fd.poll()

for fd, events in epoll_list:

print("fd is:%s events is%s"%(fd,events))

if fd == serverSocket.fileno():

conn, addr = serverSocket.accept()

conn.setblocking(False)

epoll_fd.register(conn.fileno(), select.EPOLLIN | select.EPOLLET )

connections[conn.fileno()] = conn

addresses[conn.fileno()] = addr

elif events & select.EPOLLIN:

# q.put(connections[fd])

po.apply_async(workProcess4In,args=(connections[fd],epoll_fd,))

elif events & select.EPOLLOUT:

# q.put(fd)

# d=m.dict({"epollfd":epoll_fd,"fd":fd})

po.apply_async(workProcess4Out,(connections[fd,epoll_fd],))

po.close()

po.join()

def workProcess4In(conn,epollfd):

#print("epoll is:%s"%epollfd)

#执行读操作,遇到 eagain 就 modify 状态 out

epollfd.modify(conn.fileno(), select.EPOLLET | select.EPOLLOUT)

执行结果:不执行 workProcess4In,如果把 epoll_fd 换成其他,则没问题

请教 dalao,主进程需要如何才能把 epoll_fd 传过去。

python多进程传递参数_急急急, Python 多进程,如何传递 epoll?相关推荐

  1. python中可选参数_正确使用Python可选参数

    函数的带默认值参数能够很大程度上方便我们使用:一般情况下可以省略传参使用参数的默认值,也可以主动传参:调用的时候也不用在意参数的顺序方便使用,并且直接.显式:甚至还能用来当作魔法值,做一些逻辑上的控制 ...

  2. java中jsp怎么传递参数_急!Java问题,Java如何获得jsp传递的参数??

    我的jsp页面:while(rs.next()){%> "target="_blank"> 我的jsp页面: while (rs.next()) { %> ...

  3. 测试工程师python常见面试题_测试人员python面试题

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 这条路会很曲折,你也会一度认为是不是自己选错了,但只要坚持,就算最后没有成功,但 ...

  4. python传中文参数_解决Python传递中文参数的问题

    今天有个需要需要传递中文参数给URL 但是在GBK环境下的脚本传递GBK的参数老是给我报UNICODE的解码错误.烦的很. 所以我们果断选择用urlencode来处理中文, 由于国内外网站编码不同,国 ...

  5. python类方法需要传入cls参数_如何从Python 3.x中的类定义传递参数到元类?

    这是如何从类定义向元类传递参数的python 3.x版本?问题,根据请求单独列出,因为答案与python 2.x明显不同. 在python 3.x中,如何将参数传递给元类的__prepare__.__ ...

  6. java执行python脚本并传递参数_从Java执行Python脚本存在参数传递问题

    我试图从Java执行一个python脚本.当我手动执行python脚本时,它正常工作.当我从Java执行它时,它的参数有问题:事实上,python的响应是"Usage"错误,就像我 ...

  7. python获取命令行参数_【整理】Python中如何获得并处理命令行参数

    运行Python脚本时,时常需要从命令行中传递一些参数到Python程序中,但是如何获得相应的传递进来的参数,以及如何解析这些参数,是很多人,包括最开始的我,所遇到的问题. 下面,就对此总结一下: 先 ...

  8. python函数设置默认参数_深入讲解Python函数中参数的使用及默认参数的陷阱

    这篇文章主要介绍了Python函数中参数的使用及默认参数的陷阱,文中将函数的参数分为必选参数.默认参数.可变参数和关键字参数来讲,要的朋友可以参考下 C++里函数可以设置缺省参数,Java不可以,只能 ...

  9. python 函数不确定传入参数_如何使用python传入不确定个数参数

    如何使用python传入不确定个数参数 这篇文章主要介绍了如何使用python传入不确定个数参数,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 Py ...

最新文章

  1. vcm驱动芯片原理_T6322A|电源芯片的内部设计是怎样的?
  2. 一个最为简单的jquery 分页实现方法!可以用用于理解js分页的原理。
  3. python怎么创建配置文件_如何写python的配置文件
  4. matlab 上穿,Matlab混入模式(Mixin)
  5. laravel中Blade模板继承
  6. 手写java通用curd_还在手写CRUD代码?这款开源框架助你解放双手!
  7. 实施ERP过程中必须注意的“后天条件”
  8. 聊一下《技术力量-一线技术团队成功启示录》
  9. 杭电OJ 11页2025//查找其中的最大字母,在该字母后面插入字符串“(max)”
  10. 异贝,通过移动互联网技术,为中小微实体企业联盟、线上链接、线上线下自定义营销方案推送。案例53
  11. 路由器的两种工作模式~~~
  12. 逸仙时空上翻的一个旧帖子
  13. C/C++语言100题练习计划 83——背包问题(贪心算法实现)
  14. 计算学生成绩的标准差 C语言
  15. 【聊聊Java】Java中HashMap常见问题 -- 扩容、树化、死链问题
  16. JDBC链接中的问题
  17. 微型计算机系统实验总结(学习性实验:IO地址译码,可编程并行接口8255,交通灯控制实验 + 自主设计实验:汽车信号灯控制系统,电风扇控制器,洗衣机控制系统,霓虹灯,电梯控制系统)
  18. 当精算、保险和再保险遇到量子计算,金融行业要变天了
  19. 如何获取网页上的LOGO
  20. “让专业的人做专业的事”,畅捷通的云原生故事

热门文章

  1. Fortinet 荣膺谷歌云年度安全技术合作伙伴奖
  2. 首提 Database Plus 新理念,SphereEx 获数百万美元天使融资,接棒 ShardingSphere 打造新型分布式生态
  3. 搞定面试算法系列 | 分治算法三步走
  4. js实现shallowReactive和reactive
  5. 计算机教师资格考试试题,全国教师资格考试信息技术练习题(二)
  6. mysql基础和高级整理_mysql基础整理01
  7. github private链接访问_如何将Jenkins链接到私有Github存储库?
  8. Warning: Missing charsets in String to FontSet conversion
  9. Linux环境 安装 Redis-6.2.6 配置运行_01
  10. tomcat9 启动中提示 org.apache.catalina.webresources.Cache.getResource Unable to add t