同步和异步概念的解释
2015-06-17 09:49
253 查看
同步就是一根筋,一件事从头到尾,干每件事情都得有确定的返回值,只有返回以后才执行下一步,有点一条道步步稳打走到黑的感觉
异步就是笑面虎,他可以依次的做很多事情,具体每件事情,他不需要等完成后的返回值直接做下一步,有所有事情中同时处理游刃有余的感觉
*******************************************************************************
1、换个角度
同步就相当于你请办公室人吃饭,你通知A去吃饭,A只要不表态的话,你就一直等下去,直到A说去你就将他带到饭店然后再用同样的方法去通知B,直到b亲自口头说不去,你才会用同样的方法去通知C,直到将办公室的人全部通知完为止
异步对于同样一件请客吃饭的事情,你的处理方式就不一样,你会跑到A跟前说a我请你吃饭,可能a正在忙,但是你也很忙,你还有很多人要通知,或者给a留个字条请他吃饭,然后就去找B,具体a去不去你也不清楚,然后你会将所有的人通知一遍,最后你直接去饭店定桌,等着他们的回信,可能有人给你打电话反馈等等
一句话:同步就是我通知你,你必须给我反馈,异步就是我忙着呢,通知到了,不等你了
*******************************************************************************
2、同步异步的处理过程
同步就是一直等,等到你讲我提出的给个回复为止
异步就是先将所有声明的事情干到底,然后等回复,但是回复的方法分为两种:
***************(摘抄)
一种是等,但是等的过程和同步不一样,等的时候可以做别的工作,但是程序的主线还是等待
WaitforSingleObject(hEvent,INFINTE,TRUE);
另外一种是CALLBACK方式,这种异步是完全不等待,程序主线发出请求之后就干别的事情去了,完全不理会请求执行的如何。
所有异步必然设计两个以上的线程(不然不存在异步的问题),第一种方式下,请求的后期工作是在发出请求的线程上执行,第二种方式下,后期工作可以在任何线程(通常是执行请求的线程上)完成。
异步就是笑面虎,他可以依次的做很多事情,具体每件事情,他不需要等完成后的返回值直接做下一步,有所有事情中同时处理游刃有余的感觉
*******************************************************************************
1、换个角度
同步就相当于你请办公室人吃饭,你通知A去吃饭,A只要不表态的话,你就一直等下去,直到A说去你就将他带到饭店然后再用同样的方法去通知B,直到b亲自口头说不去,你才会用同样的方法去通知C,直到将办公室的人全部通知完为止
异步对于同样一件请客吃饭的事情,你的处理方式就不一样,你会跑到A跟前说a我请你吃饭,可能a正在忙,但是你也很忙,你还有很多人要通知,或者给a留个字条请他吃饭,然后就去找B,具体a去不去你也不清楚,然后你会将所有的人通知一遍,最后你直接去饭店定桌,等着他们的回信,可能有人给你打电话反馈等等
一句话:同步就是我通知你,你必须给我反馈,异步就是我忙着呢,通知到了,不等你了
*******************************************************************************
2、同步异步的处理过程
同步就是一直等,等到你讲我提出的给个回复为止
异步就是先将所有声明的事情干到底,然后等回复,但是回复的方法分为两种:
***************(摘抄)
一种是等,但是等的过程和同步不一样,等的时候可以做别的工作,但是程序的主线还是等待
WaitforSingleObject(hEvent,INFINTE,TRUE);
另外一种是CALLBACK方式,这种异步是完全不等待,程序主线发出请求之后就干别的事情去了,完全不理会请求执行的如何。
所有异步必然设计两个以上的线程(不然不存在异步的问题),第一种方式下,请求的后期工作是在发出请求的线程上执行,第二种方式下,后期工作可以在任何线程(通常是执行请求的线程上)完成。
相关文章推荐
- C#实现多线程的同步方法实例分析
- ruby实现的一个异步文件下载HttpServer实例
- C#线程间不能调用剪切板的解决方法
- 科学知识:同步、异步、阻塞和非阻塞区别
- 同步文件备份工具 Super Flexible File Synchronizer Pro v4
- 探讨Ajax中同步与异步之间的区别
- C#线程同步的三类情景分析
- C#子线程更新UI控件的方法实例总结
- C#中异步回调函数用法实例
- C++使用CriticalSection实现线程同步实例
- 基于C++实现的线程休眠代码
- 基于C#实现的多生产者多消费者同步问题实例
- VB读取线程、句柄及写入内存的API代码实例
- C#网络编程基础之进程和线程详解
- ASP.NET之自定义同步HTTP处理程序(图文教程)
- C#实现线程安全的简易日志记录方法
- Android NDK pthreads详细使用
- 异步编程需要“意识” 推荐