异步函数是如何实现的?与多线程有什么区别?异步函数,其实是把调用分成了很多步骤来实现,在外面看来,就象是异步,其实现机制还是有许多小同步调用组成。
2 楼yhlubber(lu)回复于 2002-10-18 12:55:09 得分 20
其实就是由函数提供者实现多线程。Top
3 楼cuiwader(一叶知秋)回复于 2002-10-18 13:16:56 得分 30
异步函数是肯定要使用多线程的。同步调用是指你在当前线程中调用了一个函数,该函授可能需要很长的执行时间,而你要需要该函授的执行结果,因此你的当前现成一直要等待该函授返回。异步调用是指你使用新的线程调用一个函授,或者该函授内部使用了新的线程,而该函数可以立即返回,并在新的线程中执行。而你对该函数的执行结果不赶兴趣(如果需要执行结果,可以通过回调机制来完成)。Top
4 楼banjo(3天看问题)回复于 2002-10-18 17:11:20 得分 0
原理我也懂,
那位能提供一下伪代码吗?
Top
5 楼hhb_007()回复于 2002-10-18 18:45:20 得分 30
Windows环境下的
网络
异步编程就是一个例子。
... ...
初始化;
创建socket;
//调用异步函数
WSAAsyncSelect(sock,hWndComm,WSA_CONNECT,FD_CONNECT);
//本来connect()默认是阻塞操作,但是现在立即返回
connect(...);
当底层通讯任务(实际上可看作另外一个线程)连接成功后,
向窗口hWndComm发送WSA_CONNECT消息,你收到这个消息后就
可以作该做的事了。