同步 异步 阻塞 非阻塞
同步:在同步操作中,调用者必须等待操作完成才能继续后续代码。即执行流程是线性的,后续操作会阻塞,直到当前操作完成。举例:在一个同步网络请求的时候,客户端向服务器发送请求后会等待服务器响应,然后再继续执行后续的代码。
异步:在异步操作中,调用者可以在操作执行期间继续执行其他代码,而不用等待操作完成。操作完成后会通过回调函数,事件或者其他机制通知调用者。举例:在一个异步网络请求的时候,客户端发送请求后立刻继续执行其他代码,当服务器响应时,通过回调函数处理响应数据。
阻塞:阻塞操作会使调用者在操作完成之前无法继续执行其他操作。调用者被挂起,直到操作完成。举例:在阻塞IO操作中,如果程序在等待数据从磁盘中读取完成之前,无法进行其他操作。
非阻塞:非阻塞操作允许调用者在操作尚未完成时继续执行其他任务。调用者不会被挂起,通畅需要轮询或事件通知机制来检查操作状态。举例:在非阻塞式IO操作中,程序可以继续执行其他任务,即使数据还没有从磁盘读取完成。可以通过轮询或事件机制来检查数据是否准备好。