同步&&异步
同步/异步是属于操作系统级别的,指的是操作系统在收到程序请求的IO之后,如果IO资源没有准备好的话,该如何响应程序的问题。
- 同步的话就是不响应,直到IO资源准备好;
- 异步的话则会返回给程序一个标志,这个标志用于当IO资源准备好后通过事件机制发送的内容应该发到什么地方。
阻塞&&非阻塞
阻塞/非阻塞是属于程序级别的,指的是程序在请求操作系统进行IO操作时,如果IO资源没有准备好的话,程序该怎么处理的问题。
- 阻塞的话就是程序什么都不做,一直等到IO资源准备好。
- 非阻塞的话程序则继续运行,但是会时不时的去查看下IO到底准备好没有呢;
总结
我们通常见到的BIO是同步阻塞式的,同步的话说明操作系统底层是一直等待IO资源准备直到ok的,阻塞的话是程序本身也在一直等待IO资源准备直到ok,具体来讲程序级别的阻塞就是accept和read造成的,我们可以通过改造将其变成非阻塞式,但是操作系统层次的阻塞(同步)我们没法改变。
网友评论