同步变异步的方法

来源:互联网 发布:网络捕鱼技巧打法 编辑:程序博客网 时间:2024/05/16 19:44

异步函数是如何实现的?与多线程有什么区别?异步函数,其实是把调用分成了很多步骤来实现,在外面看来,就象是异步,其实现机制还是有许多小同步调用组成。

Top

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消息,你收到这个消息后就   
  可以作该做的事了。   

原创粉丝点击