python – XIO:X服务器上的致命IO错误11(资源暂时不可用)在235个请求(235个已知处理)之后“0:0”,剩余0个事件
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python – XIO:X服务器上的致命IO错误11(资源暂时不可用)在235个请求(235个已知处理)之后“0:0”,剩余0个事件,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1532字,纯文字阅读大概需要3分钟。
内容图文
![python – XIO:X服务器上的致命IO错误11(资源暂时不可用)在235个请求(235个已知处理)之后“0:0”,剩余0个事件](/upload/InfoBanner/zyjiaocheng/749/5e2bda3277b042deb91763f247185f47.jpg)
是的,其他人之前已经问过这个问题,但不是在相同的背景下或让我满意.所以,这里::
我正在使用python编写应用程序,该程序使用pygame(ergo opengl)来显示图形.图形是在程序本身中生成的(因此没有任何目录问题).
应用程序还需要从用户并行访问输入.为了实现这一点,我使用带管道的多处理块,并使用pygame事件循环读取输入键.下面的代码循环运行.第一次循环迭代工作正常,但在第二次迭代时,我抛出了XIO错误.
parent, child = Pipe(duplex=True)
# this function draws the canvas
switches, retOrient = self.drawCanvas(cond, count, dispSize, moves)
# this function gets the user input in another thread - stage 1
p = Process(target=userInput, args=(self.button, child) )
p.start()
b_press = parent.recv()
parent.close()
def userInput(button, child):
button_pressed = button.blockAndWait()
child.send( "%s"%(button_pressed.keyname) )
child.close()
我对这个错误是如何发生有点困惑,XIO内部导致它的原因是什么.其他答案都没有解释这个错误的根本原因.考虑到它作为单个流程应用程序工作正常,多处理模块正在关闭一些IO通道(输入注册对象,显示对象或事件循环)或打开一些不必要的通道.如何解读导致此XIO错误的确切原因?
解决方法:
不一定是真正的答案,但我不会使用多处理来并行访问套接字,例如与X服务器的连接.这看起来不错.请改用常规线程.
请注意,多处理是基于分支(有时)基于分叉,因此当父项和子项尝试访问它时,分叉套接字究竟发生了什么……是随机混合垃圾.
编辑:原因是两个分叉套接字仍然是套接字的“同一端”,X服务器保持在“另一端”.当X服务器想要发送消息时,它会在套接字上写入100个字节.但是如果你运气不好,分叉进程1读取前50个字节,分叉进程2读取剩余的50个字节.每个进程都意外地只获得了消息的随机部分.他们每个人都会抱怨X服务器发送废话.
内容总结
以上是互联网集市为您收集整理的python – XIO:X服务器上的致命IO错误11(资源暂时不可用)在235个请求(235个已知处理)之后“0:0”,剩余0个事件全部内容,希望文章能够帮你解决python – XIO:X服务器上的致命IO错误11(资源暂时不可用)在235个请求(235个已知处理)之后“0:0”,剩余0个事件所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。