当在同一个线程里进行多个异步接受的时候,一个异步函数的调用会在另外一个函数正在进行的时候被调用吗?也就是说,实际上异步接收的时候我发送过去的函数名实际上是底层的另外一个线程在需要调用的时候调用?即使在我写代码的地方我只用到了一个线程?就是一个for对一个socket数组调用异步接受,然后异步处理返回的函数会修改本线程里的变量内容

解决方案 »

  1.   

    有点儿迷糊你说的是什么东西!
    你是想问单线程,对于异步调用是怎么实现的?还是怎么实现互斥啊?
    我说的也不一定对,因为没深入研究过,都是自己写代码的一些体会!
    单线程的状况下,对于异步调用,就像设置一个队列排队一样,
    一旦执行了某段代码,就一定会执行到这段代码的结束,才会转去执行其他的代码,
    所以,对于你说的异步调用的时候,应该是先执行主要代码(就像页面显示一样),
    当主要代码执行完了之后,才会执行异步调用的函数!
    以前的浏览器,对于每个页面都是单线程的,各种异步调用应该都是这样实现的,
    不然一旦可以抢夺执行权限,就会要求资源互斥访问了!
      

  2.   

    就是说,在我的线程里的异步调用里发送的回调函数,会被我的线程所执行还是被某处系统生成的线程所执行。。
      

  3.   

    被某处系统生成的线程所执行