通过前面三篇的介绍,我们还需要记住一点:异步需要回调机制。
异步操作操作之所以能在执行结果完成之后继续执行下面的程序完全归功于回调,这也是所有异步场景的核心所在,前面JS的异步回调,后到CPU内核空间copy的数据到yoghurt空间完成通知等等异步场景,回调无处不在。
说到回调,大部分语言都是注册一个回调函数,比如JS会把回调的方法注册到执行的队列,C#会把回调注册到IOCP。
后来我看到过更多的语言逐步支持更加优秀的回调方式,比如JS和C#现在都支持async和await方式来进行一步操作。
据说,Windows下的IOCP才是真正的一部非阻塞模型,有大佬路过,可以给我讲讲。
|