同步异步阻塞非阻塞
如果立即去执行此函数,这称为同步。
如果没有去执行此函数,而是将执行此函数的时机安排在未来的某个时间,然后马上继续执行刚才的代码块,这称为异步。
当执行此函数时,直至获得完整的资源之前,都暂停执行当前的代码块,这称为阻塞。
当执行此函数时,立即获得瞬时的结果,然后马上继续执行当前的代码块。如果获得的瞬时资源不是完整的资源,之后周期性发送类似的请求,直至获得完整的资源,这称为非阻塞。
———组合———
同步阻塞:在需要某资源时马上发起请求,并暂停本线程之后的程序,直至获得所需的资源。
同步非阻塞:在需要某资源时马上发起请求,且可以马上得到答复,然后继续执行之后的程序。但如果得到的不是完整的资源,之后将周期性地的请求,直至获得所需的资源。
异步阻塞:在需要某资源时不马上发起请求,而安排一个以后的时间再发起请求。当到了那时发出请求时,将暂停本线程之后的程序,直至获得所需的资源。在获取资源之后,使用共享信号量、异步回调等方式将结果异步反馈。
异步非阻塞:在需要某资源时不马上发起请求,而安排一个以后的时间再发起请求。当到了那时发出请求时,可以马上得到答复,然后继续执行之后的程序。但如果得到的不是完整的资源,之后将周期性地的请求。在最终获取到资源之后,使用共享信号量、异步回调等方式将结果异步反馈。
————————————————
原文链接:https://blog.csdn.net/wangpaiblog/article/details/117236684
并行与并发
并行(parallellism)是指两个及以上个进程在同一时刻(时间点)同时执行。
并发(concurrency)指两个及以上个进程在同一时间间隔(时间段)内同时执行。
阻塞与挂起
阻塞(block)是指当前进程因操作系统分配的时间片用完之外的、因某资源没有满足的原因不能继续运行,从而交出当前 CPU 的使用权而暂停的一种状态。而当之前缺少的该资源被满足之后,该进程将被解除阻塞而逐步恢复之前的运行状态。
挂起(suspend)是指当前进程发生了内存等共享资源的紧急不足,或者由于用户的意愿,现阶段不需要运行等原因,处于一种不接受操作系统调度的状态。阻塞与之的区别在于,当之前缺少的该资源被满足之后,处于阻塞状态的进程将自动被解除现在的暂停运行的状态,这个自动的过程是由操作系统设法完成的。但对于处于挂起状态的进程来说,当前暂停运行的状态不会自动被解除,除非用户主动对其进行激活。
————————————————
原文链接:https://blog.csdn.net/wangpaiblog/article/details/116114098