那位高手可以帮我解释一下同步和异步的概念?同步和异步的区别!在下不胜感激!!!

解决方案 »

  1.   

    同步如果在电信传输中指的是发送和接收端在每个相同的周期发送和接收,每一单位数据在时钟的定位下收发;异步指发送事件并不发生在每个固定的时钟周期上,而是不定期的发送一批数据。
    对于软件上,同步是指一个进程/线程执行一个操作后,等待另一个进程/线程的动作后在继续,如同两个进程按一定规则,你等等我我等等你一起走;异步是说一个进程作了一个操作后,不用等待另一进程的结果就继续向下进行,两个进程的事件上没有同部的关系。所以socket同步传送,程序返回就知道传完了,异步送和收的动作可能相差很久,需要队列、缓冲区等方式先将数据保留。
      

  2.   

    Socket编程中,采用同步控制方法,优点:
    结构清晰,编程简单,执行一个通讯过程相当于执行一个函数调用,简单易用。通常采用有限等待方式。即:发送一个数据后,一直等待对方回应,知道超时为止。
    缺点:在这断时间里,该线程处于阻塞状态,界面失去响应。采用异步控制方法,优点:
    程序效率很高。
    缺点:结构不清晰,编程相对复杂,一般需要自已处理发送队列,收到回应后,需要查询发送队列,将处理结果通知发送者(可以采用回调函数方式)。