分析
- 阻塞(Blocking)
阻塞操作指的是在调用一个函数或方法时,如果该操作不能立即完成(例如,因为需要等待某个事件的发生,如数据达到或资源可用),那么当前线程或进程会被挂起(暂停执行),直到操作完成为止。在这个等待期间,线程或进程无法执行其他任务。
- 等待:调用方必须等待操作完成
- 独占:在等待期间,线程或进程无法做其他事情
- 同步:通常与同步操作相关联,即调用方必须等待操作完成才能继续执行
- 非阻塞(Non-Blocking)
非阻塞操作指的是在调用一个函数或方法时,即使该操作不能立即完成,也不会导致当前线程或进程被挂起。相反,调用方可以选择继续执行其他任务,或者在操作完成时通过回调、事件通知等方式得知
- 立即返回:调用方不会等待操作完成,而是立即返回
- 并发:在等待期间,线程或进程可以执行其他任务
- 异步:通常与异步操作相关联,即调用方不必等待操作完成即可继续执行
1 -> 1
21 -> 12
312 -> 123
4123 -> 1234