异步与同步,阻塞与非阻塞的正确认识
1.同步和异步:
同步和异步关注的是消息通信机制,
同步:就是当程序发出一个调用时,此时程序在主动等待调用返回的结果
异步:就是当程序发出一个调用时,此时程序会继续执行,而不会等待这个调用的结果,被调用者会通过状态,通知,或回调函数等处理调用的结果
2.阻塞和非阻塞:
阻塞和非阻塞关注的是程序在等待调用结果时的状态 阻塞:理解为调用返回结果之前,此线程会挂起来,只有在调用返回结果之后程序继续执行 非阻塞:与阻塞相反,发起调用之后不会等待调用返回结果,继续执行.
异步非阻塞
当一个程序A对程序B发起调用后,A程序不被挂起继续执行(非阻塞),调用返回的结果消息由B程序以回调函数等方式返回给A程序,而不是A程序主动去获取的(异步);异步阻塞
当一个程序A对程序B发起调用后,A程序被挂起不继续执行(阻塞),调用返回的结果消息由B程序以回调函数等方式返回给A程序,而不是A程序主动去获取的(异步);同步非阻塞
当一个程序A对程序B发起调用后,A程序不被挂起继续执行(非阻塞)但会间断性来获取结果消息,调用返回的结果消息由A程序主动获取(同步);同步阻塞
当一个程序A对程序B发起调用后,A程序被挂起不继续执行(阻塞),调用返回的结果消息由A程序主动获取(同步);