同步和异步关注的是消息通信机制,针对应用程序来,关注的是程序中间的协作关系
- 同步:执行一个操作后,必须等待返回结果,然后才继续执行后续的操作
- 异步:执行一个操作后,不必等待返回结果,可以去执行其他的操作,然后等待通知再回来执行刚才没执行完的操作(比如回调函数通知)
阻塞和非阻塞关注的是程序在等待调用结果时的状态(CPU层面),单个进程的执行状态
- 阻塞调用是指调用结果返回之前当前线程都会挂起,进程给CPU传达一个任务之后,一直等待CPU处理完成,然后才执行后面的操作
- 非阻塞调用是指,当前调用无论是否马上返回,都不会阻塞当前线程,进程给CPU传达任务后,继续处理当前线程后续的操作,隔断时间再来询问之前的操作是否完成