首页 > 编程知识 正文

qt python 混合编程,每个io端口位可以自由的编程

时间:2023-05-04 16:35:03 阅读:53503 作者:3272

在IO计算机上指定输入/输出,即输入和输出。 程序和运行时数据驻留在内存中,并由CPU这一超高速计算核心执行,因此涉及数据交换的位置(通常是磁盘、网络等)需要IO接口。

例如,当您打开浏览器访问新浪主页时,名为浏览器的程序需要通过互联网IO获取新浪页面。 浏览器首先向新浪服务器发送数据,告诉他们想要首页的HTML。 这个动作向外发送一个称为Output的数据,然后新浪服务器发送网页。 这个动作从外面接收称为Input的数据。 因此,程序通常有两个数据流来完成IO操作: Input和Output。 当然也有只有一个的情况。 例如,从磁盘读取文件到内存中时,只有Input操作。 相反,如果将数据写入磁盘文件,则这只是一个输出操作。

在IO编程中,“流”是一个重要概念,可以将流动视为水管。 数据是自来水管的水,但只能向一个方向流动。 输入流是指数据从外部(磁盘、网络)流向内存,而输出流是指数据从内存流向外部。 要浏览网页,必须在浏览器和新浪服务之间至少安装两根水管,以发送和接收数据。

由于CPU和内存的速度远远高于外围设备的速度,因此IO编程存在速度严重不一致的问题。 例如,要将100M的数据写入磁盘,CPU输出100M的数据可能需要0.01秒,而磁盘接收此100M的数据可能需要10秒。 我该怎么办呢? 有两种方法:

第一种模式是CPU等待,即程序暂停后续代码的执行,100M的数据在10秒后写入磁盘,然后转移到下一次执行,将该模式称为同步IO;

另一种方法是,CPU不等待,只是在磁盘上写“请总是慢慢写。 请不要着急。 接下来我会做别的事情。” 然后,后续代码可以立即继续运行。 这种模式称为异步IO。

同步和异步的区别在于是否等待I/o的执行结果。 就像去麦当劳点餐一样。 “给我一个汉堡包,”服务员说。 对不起,汉堡现在做需要五分钟。 在那里站在收银台前等5分钟,拿到汉堡后再去商场是同步IO。

说“给我一个汉堡”,服务员说,汉堡需要等五分钟。 先去商场,做好了,我们会通知你的。 这样,你很快就能做别的事了。 这是异步IO。

显然,使用异步IO编写程序比同步IO的性能高得多,但异步IO的缺点是编程模型复杂。 想想看。 你必须知道什么时候通知我“汉堡做好了”。 另外,通知的方法也各不相同。 如果服务员过来找到你,这是回调模式。 如果服务员发短信通知你,你必须不断检查手机。 这是轮询模式。 这意味着异步IO比同步IO复杂得多。

所有操作IO的能力都由操作系统提供,每种编程语言都将操作系统提供的低级c接口打包,便于使用。 Python也不例外。 稍后将详细介绍Python的IO编程接口。

请注意本章中的所有IO编程都处于同步模式。 异步IO的复杂度太高,如果涉及服务器端的程序开发,请考虑。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。