最近看到有人拿阻塞和同步进行比较,我就呵呵了,下面分享我的理解:
- 阻塞/非阻塞考察的是调用API时,若资源未准备好,API是否会立即返回(非阻塞),或将调用线程阻塞直到请求的资源就绪(阻塞)
- 比如read函数,如果在文件描述符上没有数据可读,read调用默认行为是block调用线程,直到资源就绪,read返回读出的bytes;
- 同步/异步更多场景下考察的是消息通信双方的一个交互流程,如果A发送消息给B,A一直等待并处理B的返回,称作同步;如果A发送消息给B,然后执行其他任务,B收到消息之后处理结束,并给A返回处理结果,此时A收到B的回应并处理,称作异步;