同步与异步是消息通知的机制不同,同步是主动获取通知(不断观察状态),异步是被动通知(使用回调)。
阻塞与非阻塞是获取消息通知时状态。阻塞指在获取消息通知时不可做其他事情;非阻塞指在获取消息通知时可以做其他事情。
上面组合后有四种情况:
① 同步阻塞
这种效率最低,在等待消息通知时,什么事情都不做
② 同步非阻塞
这种效率较低,在做其他事情时,还要不断观测消息的状态,来回切换,效率较低。
③ 异步阻塞
在被动等待通知时,不做其他事情,与同步阻塞情况差不多。
④ 异步非阻塞
这种效率最高,在被动等待通知时,可以做其他事情。在收到通知时,才会切换回原进程/线程处理通知