首页 > 试题广场 >

请你说一下阻塞,非阻塞,同步,异步

[问答题]

请你说一下阻塞,非阻塞,同步,异步

同步/异步主要针对客户端:

        同步:就是当客户端发出一个功能调用时,在没有得到结果之前,该调用就不返回。也就是说必须一件一件的事情去做,等一件做完了才能去做下一件。

         异步:就是当客户端发出一个功能调用时,调用者不用等接收方发出响应。实际处理这个调用的部件在完成后,会通过状态,通知和回调来通知调用者。客户端可以接着去做 后面的事情。

        虽然主要是针对客户端,但是服务器端不是完全没有关系的,同步/异步必须配合服务器端才能实现。同步/异步是由客户端自己控制,但是服务器端是否阻塞/非阻塞,客户端完全不需要关心。

阻塞/非阻塞主要是针对服务器端:

        阻塞:阻塞调用是指服务器端被调用者调用结果返回之前,当前线程会被挂起。调用线程只有在得到结果之后才会返回。

        非阻塞:指在不能立即得到结果之前,该调用不会阻塞当前线程。

发表于 2019-06-12 00:27:25 回复(0)
阻塞,当进程调用一个阻塞的系统函数若事件未准备就绪,该进程阻塞进入睡眠状态,系统调度其他进程;非阻塞,当进程调用一个非阻塞的系统函数时即使事件还没准备就绪,函数也会立刻返回,这就意味着需要循环查询事件是否就绪。同步指的程序按代码顺序执行,异步指的是程序需要事件驱动执行
发表于 2019-08-04 22:38:27 回复(0)