程序的同步、异步、阻塞、非阻塞的理解记录

同步是指调用方主动询问结果等待结果。

异步是指不需要主动去询问结果,有结果时其他人通知到你,例如回调函数、状态通知等。

阻塞:指的是返回结果前线程不能做其他的事,直到结果返回。

非阻塞:指结果返回前可以做其他的事情,线程不会被挂起。

同步阻塞:例如你去买衣服,店家说没得衣服了,你就需要主动等待结果,询问结果,店家不会通知你说衣服到了。并且你等待的过程中不能到处走任何事情不能做。就待在店里面直到店家把衣服进货进来。BIO

同步非阻塞:例如你去买衣服,店家说没得衣服了,你需要主动等待结果,询问结果,店家不会通知你说衣服到了,但是你等待的过程中可以出去逛其他的地方或者干其他的事情,但是时不时要回来询问店家衣服到了没有。 这里主动询问结果等待结果就是凸显的同步。 jdk中的NIO

异步阻塞:例如你去买衣服,店家说没得衣服了,你不需要主动询问结果,店家衣服到了通知你说衣服到了。虽然你不需要主动询问结果,但是你依然不能干其他的事情。这里店家通知你结果凸显的就是异步。

异步非阻塞:例如你去买衣服,店家说没得衣服了,你不需要主动询问结果,店家衣服到了通知你说衣服到了。同时你还可以干其他的事情。AIO

以上是我自己的解读,仅供参考。如有错误还请各位大佬多多包涵给出建议。

你可能感兴趣的:(java,java基础篇,java,开发语言)