这可能是全网把同步/异步、阻塞/非阻塞区别分析的最到位的一篇文章了。朋友,如果你看完了,并且也觉得可以,请赏赐本屌一个赞吧!~比心~
同步/异步、阻塞/非阻塞是针对不同的场景来说的。
同步/异步:
针对的是调用过程,对象是两个进程。进程1调用了进程2,进程2接收了这个调用,然后开始处理。如果是同步调用,那么在进程2处理完之前,进程2不能干别的事情了,得一直处理这个调用过程。如果是异步调用,那么在进程2处理完之前,进程2还可以干别的事情。此过程与进程1毫无关系,进程1想干什么就干什么。
阻塞/非阻塞:
针对的是函数调用,对象是同一个进程/线程。还是上面那个问题,进程1通过某函数调用了进程2,如果是阻塞调用的话,那么在函数返回前,进程1内的工作线程卡死,直到函数返回后,线程才继续工作。如果是非阻塞的调用的话,函数立即返回。此时,与进程2如何处理这个调用没关系。