您现在的位置: 首页 > 标签 > IO组件
IO组件
IO组件
相关文章 : 1篇 浏览 : 10次

以往常规的代码都是单线程同步的代码,指令的执行顺序和书写时一致,当遇到IO(文件操作或是网络操作),通常都会阻塞线程,那么OS会让其他线程获得CPU资源,这使得你的程序停滞了,当有其他请求进来时得不到处理,自然系统性能也就降低了。传统的方法是用多个线程处理多个请求,就像运行php的apache服务器一样,然而线程是昂贵的,自然也不是较好的选择。 IO 操作是基于OS,windows系统提供俩类IO,一种是同步IO(如上面描述的一样),一种是异步IO(其他OS也提供这样的操作,但并不是所有的OS都支持的很好)。异步IO与同步IO的区别在于谁去真正执行IO操作。在同步IO中是由用户进程执行IO;在异步IO中,则有OS分派另外的内核线程来执行,待数据准备好之后再将数据交由用户进程处理,在内核线程执行IO的时候,用户进程可以处理其他事情,并未被阻塞,这是异步IO高效的原因。