关于异步:
在我看来,没有异步调用,只有异步IO。而在很多程序员的术语异步调用,异步执行。都是不存在的,
为什么?
异步调用,就是任务分派,分派到其他机器上而后等待任务完成,获取任务结果。这里的异步指的是什么?
恐怕我们并不明白?任务分派?
异步执行,异步执行模式,是指语句在异步执行模式下,各语句执行结束的顺序与语句执行开始的顺序并不一定相同。
(来自百度百科)。这个描述很可怕,很不明所哟。
想到这里,我在wiki百科上进行搜索: Asynchronous function,
得到的相似的结果只有:
- Message passing (section Synchronous versus asynchronous message passing)
- Qt (software)available natively in C++: signals and slots, introspection and asynchronous function calls. Main article: List of platforms supported by Qt Qt works
- Asynchronous semaphore
- Asynchronous method invocation
- Asynchronous circuit
- Ajax (programming) (redirect from Asynchronous Javascript and XML)
- Asynchronous I/O
- Asynchronous system
- Induction motor (redirect from Asynchronous electric motor)
- Asynchronous Transfer Mode
- Callback (computer programming) (redirect from Asynchronous callback)
- Induction generator (redirect from Asynchronous generator)
- Parallel computing (redirect from Asynchronous programming)
这是部分内容。比较有意思的就是Asynchronous method invocation(要明白什么意思,请自行wiki 地址在https://en.wikipedia.org/wiki/Asynchronous_method_invocation),Asynchronous I/O。而其他部分的异步的修饰,基本上是其他的含义。
哀,对于异步,究竟该如何理解。我想只能根据这些特定的术语来理解了。asynchrous I/O,则是多路复用(select、poll、epoll、kqueue)和nonblocking的结合。
他们有这样的特点
1.节省CPU,不用让CPU等待IO
2.多次执行IO,的不确定性(比较类似的Asynchronous method invocation,有polling)